1

asp.net mvc Web サイトに次のビュー定義があります。

<% 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 挿入モードのロジックを完全に無視し、フォーム全体を送り返すだけです。

展開サーバーではなく開発で機能するのはなぜですか? すべての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 に設定したキーが Web サーバーにデプロイされたときに無視されていました。これらの行をサイト マスターに追加するとすぐに、すべてが正常に機能しました。

于 2012-04-03T21:05:54.890 に答える