我有一个搜索操作,它采用搜索参数.我在一个结果中有搜索结果,我想重定向到一个show动作,如果有多个结果,我想指向列出所有结果的列表操作.
我重定向工作,但不是很好.我不确定如何进行搜索结果的传输.如果第一个“搜索”操作只提取id,那么由show或list动作来根据id提取更多数据吗?如何将他们的身份转移到具体行动?
最佳答案 如果有多个结果,我可能会让搜索操作使用搜索结果呈现视图结果.如果合适,它可以重用列表视图,但是更容易简单地显示它们而不是尝试重定向到具有多个id的另一个动作.在单个结果的情况下,重定向到该项的详细信息操作可能是合适的.这意味着我需要在搜索期间检索足够的数据来填充模型以获取列表.如果重定向到详细信息操作,您只需按ID重定向,并让详细信息操作获取其显示所需的任何信息.
public ViewResult Search( string query )
{
... get results ..
if (results.Count() == 1)
{
return RedirectToAction( "details", new { id = results.First().ID } );
}
return View( "list", this.CreateListViewModel( results ) );
}
其中CreateListViewModel获取一组搜索结果并为List视图生成视图模型对象.