关于路由中默认参数值的一个简单问题。
如果我在全局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中设置默认值?
答案 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}