私はAJAXとJavascriptの世界に非常に慣れていないので、Scott Hanselmanのフォーム送信の例を実装してページの一部を更新しようとしています. 私は彼の例をほぼ一語一句コピーしましたが、それを機能させることができないようです。送信ボタンをクリックすると、コントローラー アクションが正常に呼び出されますが、Ajax フォームで指定したスパンだけを更新するのではなく、結果が新しいページとしてブラウザーにレンダリングされます。
ここに私のビューコードがあります:
<asp:Content ID="indexHead" ContentPlaceHolderID="head" runat="server">
<title>Home Page</title>
</asp:Content>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<% using (Ajax.BeginForm("TestAction", new AjaxOptions { UpdateTargetId = "target" }))
{ %>
<%= Html.TextBox("TextBox")%>
<input type="submit" value="Submit" />
<span id="target" />
<% } %>
</asp:Content>
そして私のコントローラーアクション:
public string TestAction(string TextBox)
{
return TextBox;
}
そして、マスターページに次の行を含めました
<script src="../../Scripts/MicrosoftMvcAjax.debug.js"type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
ただし、ターゲット スパンを更新する代わりに、アクションを呼び出して結果を新しいページとしてレンダリングするだけのようです。何が起こっているかを説明するためのいくつかの小さなスクリーンショットを次に示します。
スクリーンショット 1 http://martindoms.com/scr1.JPG
スクリーンショット 2 http://martindoms.com/scr2.JPG
何か案は?