如何解决从IIS7中的虚拟目录运行ASP.NET MVC应用程序
|| 是否可以从IIS7中的虚拟目录运行MVC应用程序?我在ASP.NET MVC3中构建了一个开源实用程序应用程序,想知道这是否是一个错误;该站点可能无法从虚拟目录运行。 如果从名为/ app的虚拟目录中运行,则采用/ home / index的简单默认路由,实际上将是/ app / home索引。哪种混乱的事情需要路由。 我不希望用户必须更改路由并重新编译项目以在虚拟目录中使用该应用程序。有没有一种方法可以更改配置参数以指示应用程序的根文件夹是什么?解决方法
是否可以从IIS7中的虚拟目录运行MVC应用程序?
不仅有可能,而且是首选方法。
哪种混乱的事情需要路由。
如果在处理url时使用HTML帮助程序,则不会。
这是您永远不应该做的典型示例:
<script type=\"text/javascript\">
$.ajax({
url: \'/home/index\'
});
</script>
这是应该怎么做:
<script type=\"text/javascript\">
$.ajax({
url: \'@Url.Action(\"index\",\"home\")\'
});
</script>
这是您不应该执行的操作的另一个典型示例:
<a href=\"/home/index\">Foo</a>
这是应该如何写的:
@Html.ActionLink(\"Foo\",\"Index\",\"Home\")
这是您不应该执行的操作的另一个示例:
<form action=\"/home/index\" method=\"opst\">
</form>
这是应该如何写的:
@using (Html.BeginForm(\"Index\",\"Home\"))
{
}
我认为你说对了。
, 是的,可以正常工作,不,它不会弄乱路由。但是,您正在运行的应用可能有错误,并且不支持该配置。
您不需要\“配置参数\”,因为IIS和ASP.NET已经正确处理了此参数。
但是,您确实需要避免在视图中使用硬编码的URI。
例如,执行以下操作:
<img src=\"<%: Url.Content(\"~/Content/Images/Image.png\") %>\" />
...代替:
<img src=\"/Content/Images/Image.png\" />
...以及类似的链接和样式表参考。
, 据我所知,路由都是基于应用程序的根目录,而不是实际的根目录,因此请以routes8ѭ而不是not9开头
, 是的,这可行。只要您使用辅助方法来创建操作网址(例如<%=Html.ActionLink(...) %>
,就无需重新配置或重新编译)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。