我的MVC3项目中有一个关于使用ajax的问题。我已经做了几个使用它的设置,比如在母版页中添加一些脚本,并在web.config文件中更改一些内容等。
实际上在所有这些事情之后我的项目在我的本地服务器上运行良好。但是当我发布它时,ajax的东西不再起作用了。
你有什么想法解决这个问题吗?该怎么做? 如果有人可以帮助我会很棒。
提前致谢。
这些东西都在我的母版页中。
<script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
这些来自web.config我刚刚将UnobtrusiveJavaScriptEnabled值从“true”更改为“false”
<configuration>
<appSettings>
<add key="inspector" value="EmrTelInspector" />
<add key="browserExpireCookie" value="EmrTel" />
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />
</appSettings>
答案 0 :(得分:1)
替换:
<script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
使用:
<script src="@Url.Content("~/Scripts/MicrosoftAjax.debug.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.debug.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
或者如果您使用的是WebForms视图引擎:
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.debug.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.debug.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js") %>" type="text/javascript"></script>
您的代码在发布时不起作用的原因是因为IIS中存在虚拟目录,因此正确的网址不再是/Scripts/MicrosoftAjax.debug.js
而是/NameOfYourApplication/Scripts/MicrosoftAjax.debug.js
。
因此,您不应该在ASp.NET MVC应用程序中对任何URL进行硬编码。您应始终使用url帮助程序以确保此应用程序无论在何处部署都可以正常工作。