尝试在 MVC 中使用多个参数格式化操作的 URL



>我有以下操作结果:

        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/

最新更新