2

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

何か案は?

4

2 に答える 2

4

マスター ページに含まれる JavaScript の順序が間違っています。MicrosoftAjax.js が 3 つのうちの最初に含まれるように並べ替えて、それが機能するようにします。

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
于 2009-04-18T05:36:42.703 に答える
0

そこにいくつかのアイデアを投げかけるだけです...

http://www.asp.net/learn/MVC/tutorial-33-cs.aspx

あなたのコントローラーアクションは、そのように定義されたクラスにありますか?

public class MyController : Controller

どうやら、クラスの名前はコントローラーという単語で終わらなければなりません。

于 2009-04-18T04:27:25.583 に答える