是否可以从IIS7中的虚拟目录运行MVC应用程序?我在ASP.NET MVC3中构建了一个开源实用程序应用程序,并想知道这是否是一个错误;可能是因为无法从虚拟目录运行该站点.
如果从名为/ app的虚拟目录运行,则采用/ home / index的简单默认路由,实际上是/ app / home index.哪种方式会让路由变得混乱.
我不希望用户必须更改路由并重新编译项目以在虚拟目录中使用该应用程序.有没有办法更改配置参数以指示应用程序的根文件夹是什么?
解决方法
Is it possible to run an MVC application from a virtual directory in IIS7?
不仅是可能的,而且是首选方式.
Which kind of messes things up for routing.
如果您在处理将处理此问题的网址时使用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")) { }
我认为你说对了.