路由上的参数的默认值

时间:2011-08-08 14:27:15

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

关于路由中默认参数值的一个简单问题。

如果我在全局asax中有一条路线,并带有以下数据:

Name: "DetailPage"
Pattern:/{companytitle}/{departmenttitle}/{persontitle}
Controller="Person"
Action="Detail"

我在我的观点中使用了以下帮助:

@(Url.RouteUrl("DetailPage",new{companytitle=Model.Companytitle, departmenttitle=Model.DepartmentTitle,persontitle=Model.PersonTitle}))

让我们对模型DepartmentTitle的属性为null的成像,我如何在Route中设置默认值?

2 个答案:

答案 0 :(得分:3)

只需将它们定义为路线的一部分,并为它们提供如下的默认值:

routes.MapRoute("DetailPage",
                "/{companytitle}/{departmenttitle}/{persontitle}",
                new { controller = "Person", action = "Detail", departmenttitle = "Science", persontitle ="Me" }
                );

答案 1 :(得分:2)

  

让我们对模型DepartmentTitle的属性为null进行成像

你不应该想象这样的事情。只有路由中的最后一个参数可以为null(或空)。如果参数可以为null(或为空),则它不应该是路由定义的一部分(除非这是此路由定义的最后一个参数),而是作为查询字符串传递。

在您的情况下,只需像这样定义路线:

{companytitle}/{persontitle}