>我有以下操作结果:
public ActionResult Index(int id, int? siteId)
{
//code here....
return View(object);
}
我有以下路由映射如下:
routes.MapRoute(
name: "SettingsRoute",
url: "Settings/{id}/{siteId}",
defaults: new
{
controller = "Settings",
action = "Index",
}
);
我需要做什么,所以在初始加载期间,url将是"Settings?id=1&siteId=133"而不是"Settings?id=1"格式。然后,要选择一个站点,它会构建URl"Settings/1/133"。
我正在使用以下操作链接来创建它:
<li>@Html.ActionLink(site.Name, "Index", "Settings", new { id = Model.SettingsEnvironment.EnvironmentID, siteId = site.SiteID }, null)</li>
我似乎无法正确确定路由。任何帮助将不胜感激。谢谢。
您需要设置可选的 URL 参数:
routes.MapRoute(
name: "SettingsRoute",
url: "Settings/{id}/{siteId}",
defaults: new
{
controller = "Settings",
action = "Index",
siteId = UrlParameter.Optional
}
);
参考: http://haacked.com/archive/2010/02/12/asp-net-mvc-2-optional-url-parameters.aspx/