部署到WebServer时,Ajax.BeginForm不起作用

时间:2012-04-03 02:48:19

标签: ajax asp.net-mvc asp.net-ajax asp.net-mvc-ajax

我在asp.net mvc网站上有以下视图定义:

<% Using Ajax.BeginForm("UsrCtlChangePassword", "User", Nothing, New AjaxOptions With {.UpdateTargetId = "resultDiv", .InsertionMode = InsertionMode.Replace, .HttpMethod = "Post"}, New With {.id = "myFormID"})%>
<%: Html.ValidationSummary(True, "Invalid details supplied.")%>     

 ...View field definition in here
 ...   

<% End Using%>  

</div>

所以基本上当用户输入无效信息(旧密码不匹配)时,整个页面不会只刷新targetdiv。

这在我的开发环境中完美运行。我遇到的问题是我现在已经将它部署到我的Web主机服务器(softsys windows 2008服务器),它在部署的服务器上不起作用。它完全忽略了ajax插入模式逻辑,只是发送回整个表单。

为什么它会在dev中工作而不在部署服务器上?我检查了所有的dll和脚本,似乎一切都在那里。以下是我的bin文件夹中的dll: enter image description here 我在web.config中设置了以下键(我将UnobtrusiveJavaScriptEnabled更改为true并且没有任何区别):

<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="false" />

这是我的site.master中的脚本链接:

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<link href="<%: Url.Content("~/Content/themes/Redmond/jquery-ui.css")%>" rel="stylesheet" type="text/css" />
<script src="<%: Url.Content("~/Scripts/jquery-1.5.1.min.js") %>" type="text/javascript"></script>   
<script src="<%: Url.Content("~/Scripts/modernizr-1.7.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery-ui-1.8.11.min.js") %>" type="text/javascript"></script>     
<script src="<%: Url.Content("~/Scripts/jquery.cookie.js") %>" type="text/javascript"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>"></script>
<script type="text/javascript" src="<%: Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>"></script>   

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我解决了问题,结果是我需要将以下几行添加到我的site.master:

<% Html.EnableClientValidation()%>
<% Html.EnableUnobtrusiveJavaScript(False)%>

由于某种原因,我在web.config中设置的密钥在部署到Web服务器时被忽略。一旦我将这些行添加到站点主页,一切都按预期工作。