【发布时间】:2012-07-24 21:38:06
【问题描述】:
我有一个 MVC 应用程序。这是我对 About.cshtml 进行以下更改的基本设置:
@{
ViewBag.Title = "About Us";
}
<script src=@Url.Content("~/Scripts/test.js") type="text/javascript"></script>
<h2>About</h2>
<p>
Put content here.
</p>
所以我添加了对外部脚本的引用。
脚本本身包含以下内容:
$(document).ready(function () {
$.post('/Home/GetResult', null, function (data) {
alert(data);
});
});
home控制器中调用的方法是:
public int GetResult()
{
return 3;
}
所以,这是一个基本的设置,用户点击关于 GetResult 方法被调用并弹出一个包含 3 的警报。
所以我在 IIS 中将其设置为网站,它按预期工作。单击“关于”时会弹出消息和网站
有地址http://localhost:xx/Home/About
然后我尝试将其设置为虚拟目录。
点击关于时不会弹出消息。
它所在的 url 是:http://localhost:xx/Practise/Home/About 其中 practice 是虚拟目录的名称。
那么为什么消息没有出现?
现在url中包含虚拟目录名,是不是找不到文件了?
如果需要将其托管为虚拟目录,解决此问题的最佳方法是什么?
【问题讨论】:
-
检查 HTML 源代码以查看 .js 文件的加载位置,看看是否可以在浏览器中打开它。尝试将其 URL 更改为 /Practise/Scripts/test.js
标签: jquery asp.net-mvc iis