我是ASP.Net Mvc的新手,我对路由配置感到困惑。在我将项目部署到生产后,需要更改网址。我的应用程序的第一个版本我的路由配置如下所示
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
但客户希望访问"http://{serveraddress}/ClaimFilePortal/{controller}/{action}/{id}"
之类的应用程序。在此之后我改变了我的路由配置,如下所示。
routes.MapRoute(
name: "Default",
url: "{applicationname}/{controller}/{action}/{id}",
defaults: new { applicationname ="ClaimFilePortal",controller = "Account", action = "Index", id = UrlParameter.Optional },
constraints:new {applicationname = "ClaimFilePortal"}
);
但在控制器'代码有重定向,而mvc没有添加"ClaimFilePortal"
约束。
return RedirectToAction("Index2", "Account",
new RouteValueDictionary(new { systemUserId = systemUserId, returnUrl = "/Upload/RedirectToFolder" + Request.Url.Query}));
那么,我如何为所有重定向添加配置(Redirect(), RedirectToAction(), RedirectToRoute() etc.)
以在所有网址之前添加我的约束。
答案 0 :(得分:0)
添加'ClaimFilePortal'作为默认前缀,从中删除{}并尝试如下:
routes.MapRoute(
name: "Default",
url: "applicationname/{controller}/{action}/{id}",
defaults: new { applicationname ="ClaimFilePortal",controller = "Account", action = "Index", id = UrlParameter.Optional },
constraints:new {applicationname = "ClaimFilePortal"}
);
routes.MapRoute(
name: "Default",
url: "applicationname/{controller}/{action}/{id}",
defaults: new { applicationname ="ClaimFilePortal",controller = "Account", action = "Index", id = UrlParameter.Optional },
constraints:new {applicationname = "ClaimFilePortal"}
);