ASP.NET MVC“搜索”应该重定向到结果或结果

时间:2011-03-27 20:11:21

标签: asp.net-mvc asp.net-mvc-3

我有一个带搜索参数的搜索操作。我在一个结果中有搜索结果,我想重定向到一个show动作,如果有多个结果,我想指向列出所有结果的列表操作。

我重定向工作,但不是很好。我不确定如何进行搜索结果的传输。如果第一个“搜索”操作只提取id,那么由show或list动作来根据id提取更多数据吗?如何将他们的身份转移到具体行动?

2 个答案:

答案 0 :(得分:2)

如果有多个结果,我可能会让搜索操作使用搜索结果呈现视图结果。如果合适,它可以重用列表视图,但是更容易简单地显示它们而不是尝试重定向到具有多个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视图生成视图模型对象。

答案 1 :(得分:0)

另一种可能性是创建两个视图,一个用于单个结果,一个用于列表结果,并调用return View("Single", model)View("List, collection)