helper.Action:基于路由值格式化URL的问题

时间:2011-09-18 07:31:51

标签: asp.net-mvc

enter image description here

我导航到一个ID为10.000的“详细信息”页面,如上图所示。

在这个页面上,我有一个后退按钮(法语名为'retour')。

enter image description here

我需要格式化此按钮的URL以导航回搜索页面。

enter image description here

我有一个填充了标准的对象(上图)。如您所见,IdAffaire为空。

使用helper.Action方法格式化URL时,

,初始化IdAffaire,并从页面的URL中检索到值10.000!这是路由系统的行为。

“路由系统热衷于对路由进行匹配,以至于它将重用来自传入URL的段变量值。”

enter image description here

这种行为对我来说是个问题。我希望你知道我的意思,很难解释。

非常感谢任何帮助。

编辑:这是导致问题的路线:

        routes.MapRoute(
        "Affaire Detail",                                               // Route name
        "{controller}/Detail/{IdAffaire}",                              // URL with parameters
        new { action = "Detail" },                                      // Parameter defaults
        new { controller = "Affaire" }                                  // Contraints
        );

1 个答案:

答案 0 :(得分:1)

这是默认行为,是设计使然。您可以通过显式设置值来解决此问题:

helper.Action("SearchAffaires", "Affaire", new { 
    IdAffaire = "",  
    page = sessionWrapper.SearchCriteriaAffaire.Page, 
    pageSize = sessionWrapper.SearchCriteriaAffaire.PageSize,
    // pass any other parameter that your SearchAffaires action might require
})