2011-12-07 1 views
8

ASP.NET MVC3のAjax.BeginFormメソッドを使用しようとする際に、私は奇妙な問題が発生しています。フォームは、適切なアクション属性を持つページ上で適切にレンダリングされます。ただし、フォームが送信されると、 "OnFailure"イベントが "Not Found" 404エラーを返しています。AJAX.BeginForm PostURLが壊れています

私がfiddlerでリクエストを見ると、投稿URLが「/ [Object NodeList]」であることがわかりますが、これは明らかに無効です。次のように

マイカミソリのコードは次のとおりです。

@using (Ajax.BeginForm("Save", "Items", new AjaxOptions { UpdateTargetId = "itemContainer", InsertionMode = InsertionMode.Replace, OnFailure = "onFailure"})) 
{ 
    <div style="position:absolute; bottom:20px; left:200px;"> 
     <button type="submit" id="Save" name="action" value="Save">Save</button> 
     <button type="submit" id="Cancel" name="action" value="Cancel">Cancel</button> 
    </div> 
} 
+0

私は、問題に寄与する控えめなajaxライブラリを使用していることを言及する必要があります。これがMVC ajaxの「目障りな」フレーバーの問題であるかどうかは不明です。 – jbrunken

答えて

11

問題は送信ボタンのname属性に "action"を使用していました。名前属性を別の値に変更すると、すべてが完全に機能するようになりました。

私は混乱している目立たないajaxライブラリにjQueryセレクタがあると思います。

+3

ありがとう!この同じ問題に対して私の頭を叩きました。 – Japple

+0

yessss mate !!それだった! – wodzu

0

は、あなたのweb.configファイルでオンまたはオフに控えめなJavaScriptを持っていますか?私が最初に推測したのは、ms Ajaxライブラリがgoofyを実行しているので邪魔にならないようにして、jqueryのサポートを取得します。

あなたのフォームアクションはどのように設定されていますか?可能であれば、フォームのHTML要素を投稿してください。

+1

修正が見つかりました。これは、送信ボタンのname属性と関係していました。 – jbrunken

+0

投稿ボタンの名前が投稿したURLを変更しましたか?とても奇妙に聞こえるよ! –

+0

私は@AdamTuliperとここで同意すると思います。ボタンの名前を変更すると、あなたが投稿したURLを変更してはいけません。以前に使用していなかったものに再度変更すると、それは壊れますか? – Eonasdan

関連する問題