1

我的 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: 在此处输入图像描述 我在 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>   

有任何想法吗?

提前致谢。

4

1 回答 1

1

我解决了,最终我需要在我的 site.master 中添加以下几行:

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

由于某种原因,我在 web.config 中设置的密钥在部署到网络服务器时被忽略了。一旦我将这些行添加到站点管理员中,一切都会正常运行。

于 2012-04-03T21:05:54.890 回答