asp.net-mvc – ASP.NET MVC“搜索”应该重定向到结果或结果

我有一个搜索操作,它采用搜索参数.我在一个结果中有搜索结果,我想重定向到一个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视图生成视图模型对象.

点赞