1

在我的开发环境中

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(), "~");

4

1 回答 1

1

我通过在开发环境中添加虚拟路径解决了这个问题

右键单击项目、属性、Web,然后单击虚拟路径。

不知道生产环境有没有办法配置

在此处输入图像描述

于 2013-07-24T16:50:18.293 回答