【问题标题】:Multiple ActionResults to return same view? Or better way?多个 ActionResults 返回相同的视图?还是更好的方法?
【发布时间】:2010-09-15 23:15:08
【问题描述】:

我的 url 路由像 [domain]/Listings/Colorado 那样工作,返回模型的操作结果签名工作正常 ...ActionResult GetByStateName(string stateName)..

我希望 ActionResult GetByStateName(string stateName, string priceRange) 返回相同的视图 ...我猜想重载但我不能有模棱两可的动作结果。..

我需要的是返回相同的视图,但通过不同的操作结果......我想。

可选参数是要走的路还是更好的方法,因为我最多有 5 个不同的参数,有些是空的或 null 是我不想为每个 ActionResult 都有一个视图...?

【问题讨论】:

    标签: asp.net-mvc-2


    【解决方案1】:

    你可以为第二种方法使用不同的名字,然后做一个

    return View("GetByStateName", model);
    

    或者只定义带有2个参数的方法,并显式处理额外参数为null的情况。

    【讨论】:

    • 谢谢你们的建议......我仍然在做一些愚蠢的事情,因为我的视图没有显示每个操作方法提供的新数据,即使当我进入它时 ByStateName(" Arizona") 返回 6 个列表,而 ByStateAndPrice("Arizona","0-2000000") 返回 2 个列表...?哪些在数据库中是正确的,但我的观点(相同的观点)没有改变???
    • 动作结果返回相同的 PaginatedList 类型的模型,像这样... return View("ShowListings", paginatedListingsByStateName); //returns 6 ..... return View("ShowListings", paginatedListingsByStateAndPrice); //return 2 如果有帮助,查看的顶部是 >" %>
    • NM...我有一段尝试其他东西的残留代码,忘记删除它...谢谢,我喜欢通过各种搜索查询将同一模型传递给同一个视图...再次感谢
    【解决方案2】:

    你只需要使用第二种方法(GetByStateName(string stateName, string priceRange))。

    如果框架在请求中没有找到priceRange 的值,它会将其设置为空...所以您只需检查priceRange 是否为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-31
      • 2016-07-11
      • 2021-06-07
      • 1970-01-01
      • 2016-06-21
      • 2020-09-15
      • 2018-01-02
      • 1970-01-01
      相关资源
      最近更新 更多