有没有办法使用ASP.NET MVC将HTML URL解析为子应用程序的根目录?
使用ASP.NET MVC3和Razor&C# 假设我有一个通过IIS设置为作为普通网站运行的应用程序,但现在我想将此应用程序作为另一个网站下的子应用程序运行。例如,子应用程序将存储在网站根目录下名为“SubApp”的文件夹中(例如www.example.com/SubApp/) 如果我在SubApp的razor mark up/code behind中引用诸如“~/Images/picture.gif”之类的URL,它将解析为SubApp的根:有没有办法使用ASP.NET MVC将HTML URL解析为子应用程序的根目录?,html,asp.net-mvc-3,url,iis,razor,Html,Asp.net Mvc 3,Url,Iis,Razor,使用ASP.NET MVC3和Razor&C# 假设我有一个通过IIS设置为作为普通网站运行的应用程序,但现在我想将此应用程序作为另一个网站下的子应用程序运行。例如,子应用程序将存储在网站根目录下名为“SubApp”的文件夹中(例如www.example.com/SubApp/) 如果我在SubApp的razor mark up/code behind中引用诸如“~/Images/picture.gif”之类的URL,它将解析为SubApp的根:www.example.com/SubApp/Im
www.example.com/SubApp/Images/picture.gif
但是,如果我通过常规HTML(在SubApp中)引用“/Images/picture.gif”,它将解析为SubApp父网站的根:www.example.com/Images/picture.gif
有没有一种简单、可靠的方法可以将这些HTML URL解析到子应用程序的根目录,而不必重写它们以使用Razor?在这种情况下,处理URL的最佳方法是什么?如果您处理的是浏览器直接请求的纯HTML页面,则应使用相对URL。例如,如果您有:
/SubApp
/Images
foo.gif
page.html
你应使用:
<img src="foo.gif" />
在page.html内部。您可以使用“./”来访问目录等
不幸的是,如果要处理更复杂的服务器端路由方案,则需要使用某种服务器端代码来处理。我正在将旧页面转换为MVC3,这是一堆HTML和ASP.NET控件。不幸的是,转换是一个附带项目,所以我不能一次完成所有的转换。相对URL不能很好地使用遗留控件,因为它们在多个位置使用,但对于不使用服务器端处理的页面,我会记住它们。谢谢你的意见!