【发布时间】:2011-05-12 09:45:07
【问题描述】:
(注意:试图寻找类似的问题,但最接近的问题似乎仍然与我的问题不匹配。即MVC - Application root appears twice in url using Url.Content/Url.Action)
我目前有两个 ASP.NET MVC 3 RC 应用程序在一个域下运行,即
mydomain.com/app1
mydomain.com/app2
现在,因为它是一个单独的应用程序,所以我注册了另一个域名并启用了掩码转发到其中一个应用程序 (即http://foo.com 将加载http://mydomain.com/app1 并且在浏览器中,它只会显示http://foo.com,而不是http://mydomain.com/app1)
嗯,这就是 MVC 开始抱怨的地方。 Url.Content() 和 Html.Action() 都会生成意外的 URL。
例如,在 Html.Action() 的情况下,如果我有@Html.ActionLink("About", "Index", "About"),我期望http://foo.com/about,但最终得到http://foo.com/app1/about
因为http://foo.com/app1/about 翻译成http://mydomain.com/app1/app1/about,显然链接不起作用。
同样,对于 Url.Content,如果我有 href="@Url.Content("~/Content/Site.css")",浏览器将无法加载样式表,因为它认为位置在 http://foo.com/app1/Content/Site.css , 而不是 http://foo.com/Content/Site.css
有没有办法让 MVC 忘记它的起始目录(即从其生成的 URL 中删除“app1/”?)
感谢阅读,如果需要更多信息,请告诉我。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing url-masking