我在Windows XP机器上创建了一个ASP.net mvc应用程序。现在,我正处于我想部署应用程序的阶段。我已经完成了一些谷歌搜索如何在IIS 5.1和6.0下安装/配置MVC应用程序,但我仍然遇到问题,虽然我已经完成了所有事情,所以我相信,这本书。
在我的XP盒子上,我创建了一个虚拟目录并添加了应用程序映射“。*”并取消选中“检查该文件是否存在”。
当我导航到localhost / vince /我的页面显示很棒!记录后,我将被重定向到: 本地主机/文斯/交易/索引
视图(Transaction / Index.aspx)只显示商业信息......
用户可以通过单击MyAccount链接来编辑他的帐户,这可以将他带到: 本地主机/文斯/帐户/索引
我在该视图的底部有一个取消按钮,它基本上会让您回到: localhost / vince / Transaction / Index
该取消按钮的查看源是:
<input onclick="location.href='/Transaction/Index'"
type="button" value=" Cancel " />
问题是当用户点击取消按钮时,他正被发送到localhost / Transaction / Index
我找不到404页面...注意我的虚拟目录“vince”的名称是如何删除的。
为了进一步测试......我决定在IIS 6.0的Win2k3上部署我的MVC应用程序。创建完全相同的东西,虚拟目录并添加了应用程序映射,只是意识到它正在做同样的事情。现在我创建了一个WebSite,而不是创建虚拟目录。奇怪的是,它现在无需更改任何内容即可运行...有没有人知道为什么它现在可以在新的WebSite中运行而不是新的虚拟目录。
由于
答案 0 :(得分:1)
您的取消按钮正在将浏览器发送至/Transaction/Index
。需要注意的重要一点是该URL的前导斜杠。这会将您发送到站点的根目录(不包含虚拟目录)。这就是为什么它在创建网站时在IIS 6上运行的原因 - 那里没有使用虚拟目录。
对此的修复是使用路由基础结构生成取消按钮的链接 - 听起来您已经在为应用程序中的其他链接执行此操作。
答案 1 :(得分:0)
它听起来不像服务器设置,操作系统版本或iis版本问题...您的取消按钮请求的确切网址是什么?
答案 2 :(得分:0)
将您的HTML更改为:
<input onclick="location.href='<%= Url.Action("Index", "Transaction") %>'"
type="button" value=" Cancel " />