Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我发布到MVC3项目时,Ajax不起作用_Ajax_Asp.net Mvc 3 - Fatal编程技术网

当我发布到MVC3项目时,Ajax不起作用

当我发布到MVC3项目时,Ajax不起作用,ajax,asp.net-mvc-3,Ajax,Asp.net Mvc 3,我的MVC3项目中有一个关于使用ajax的问题。我已经为使用它做了一些设置,比如在母版页中添加一些脚本,在web.config文件中更改一些内容等等 事实上,在所有这些事情之后,我的项目在本地服务器上运行良好。但是当我发布它时,ajax的东西就不再有效了 你有解决这个问题的办法吗?你需要做什么? 如果有人能帮助我,那就太好了 提前谢谢 这些东西在我的主页上 <script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascri

我的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,我刚刚将不引人注目的JavaScriptEnabled值从“true”更改为“false”


更换:

<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>

与:


或者,如果您正在使用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中有一个虚拟目录,因此正确的url不再是
/Scripts/MicrosoftAjax.debug.js
,而是
/NameOfYourApplication/Scripts/MicrosoftAjax.debug.js


因此,您永远不应该在ASp.NET MVC应用程序中硬编码任何URL。您应该始终使用url帮助程序,以确保此应用程序无论部署在何处都能正常工作。

Tahanks很多。特别是快速回答。但不幸的是,它仍然不起作用。我不知道我需要使用@url.content。。。我已经换了。也许ı在某些地方也有一些错误。@serhads,您可以使用FireBug或Chrome developer工具来分析正在下载的所有资源,并确保路径正确且不会出现404错误。@serhads,是的,您需要替换它。你不应该硬编码。您应该使用
Html.BeginForm
Ajax.BeginForm
帮助程序生成表单。不,这是一个误解。我从chrome开发者工具中得到了代码。我确实使用了ajax.beginform。很抱歉
<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>
<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>