1

Ajax.BeginForm を使用して ajax リクエストを作成していますが、asp.net mvc は、UpdateTargetId で設定した div ではなく、新しいページに結果を表示します。ページに同じ名前の div が 1 つだけあることを確認しました。

生成されるマークアップは次のとおりです。

<form action="/MyController/MyAction" id="myform" method="post" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'myDiv', onSuccess: Function.createDelegate(this, someJsFunction) });">
    <input type="text" name="name" id="userInput" value="" />
    <input type="submit" id="mySubmit" style="display:none" />
    </form><div id="myDiv"></div>

ここでは、javascript でクリックしているため、送信ボタンは表示されません (別のページで同じ方法を使用していますが、これは機能します)。

$(document).ready(function() {
            $("[name:'name']").bind("keyup", function() {
                $("#mySubmit").click();
            })

asp.net mvc の最新バージョンを使用しています。スクリプト エラーは発生しません。すべての ID が一意であること、すべての js 関数が存在し、エラーなしで動作することを再確認しました。マークアップは、入力をフォームに直接入れることはできませんが、他のページでは正常に機能することを除いて、HTML の厳密に有効です。サーバー側のコードは正常に実行され、返されたマークアップは完全に正しいものです。結果がdiv内ではなく新しいページに表示されることを除いて、すべて問題ないようです。私は何を間違っていますか?

4

2 に答える 2

3

私はまったく同じ問題を抱えていました.解決策は、私が忘れていたMicrosoftAjax.jsとMicrosoftMvcAjax.jsを参照していました.

于 2010-03-03T04:55:47.610 に答える
1

まず、一般的なヒント: 送信するために、なぜ目に見えない送信ボタンをクリックするのですか? 次のように使用することもできます。

 $("#myform").submit();

そして、あなたの問題に関連して、それはjavascriptコードに何らかの問題があるに違いありません.ページにajax jsライブラリを含めていない可能性があります.javascriptが失敗した場合、フォームは提供されたpostメソッドを使用して正常に送信されるためです.アクション。IE でクライアント スクリプトのデバッグを有効にしてみてください (実際には、[ツール]/[インターネット オプション] の詳細パネルで [スクリプトのデバッグを無効にする] を無効にする必要があります。または、Firefox のFirebugを使用します。

于 2009-04-28T07:03:00.043 に答える