在我的开发环境中
Url.Action("Index", "User") ---> /user
在生产中,应用程序配置在名为“ucms”的应用程序下
Url.Action("Index", "User") ---> /ucms/User
我有基于 url 的授权,即 /user,所以它在生产环境中失败了。如何解决此问题以删除 ucms?
编辑 路线是默认的。仅供参考,我已将应用程序从 mvc 3.0 升级到 4.0。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
编辑 我已经想出了一种方法来做到这一点,任何人都可以分享对此的想法。
将虚拟路径存储在 web.config 中。
<add key="appvirtualpath" value="~/ucms"/>
在将 url 传递给数据库层时,我将替换虚拟路径将空白。
Url.Action("Index","User").Replace(ConfigurationManager.AppSettings["appvirtualpath"].ToString(), "~");