2012-02-17 11 views
0

MVC3 Webアプリケーションで作業していて、モデルからAJAXを使用したアクションに値を渡すときに問題が発生しました。 IMVC3 TextBoxの値の変更に関するモデルプロパティの更新

1)は、このビュー 2を参照

)数量テキストボックス 3を変更するには)私はにモデルを渡すときに私が得るように私は「数量」に同じ値を取得

を保存ヒット景色。私はModelがTextfieldsと同期することを期待しますが、apperently彼らはそうではありません。モデルを同期させるか、新しい「数量」の値をActionLinkに取得する他の方法が必要です。

- SOLUTION:私はHtml.BeginForm機能を使用して、そしてAjax.ActionLinkを呼んでいたので、

基本的に私のFormCollectionを更新しなかった理由でした。これらは一緒にうまく機能しません。 Ajax.BeginFormに変更すると、更新されたFormCollectionを正常に返すことができました。

(それはたくさんリファクタリングと認識できないされていますので、私は今ここにコードを貼り付けることはできません)

答えて

1

あなたはPOSTを発行する必要がありますモデルを更新します。次に、SaveメソッドをHttpPost属性で飾り、最初の引数としてモデルを受け入れる必要があります。フレームワークはあなたに議論を渡します。

ここにはこのフォーラムのサポート記事があります。

ASP.NET MVC [HttpPost] action accepts single object, spits back validation errors to ViewPage<CustomViewModel>

EDIT

を追加しましたもっと直接的アヤックスActionLinkのに関連した修正リンク - MVC Ajax.ActionLink doesn't find POST method

+0

[OK]を理にかなっています。しかし、私は今すぐビューから空のOrderオブジェクトを取得します。投稿したリンクのように[バインド(接頭辞= "オーダー")]を設定しようとすると、ヌル参照が返されます。とにかくBindは何をやろうとしていますか? – AndersLindas

+0

あなたはおそらくそれを必要とせず、それを引き出すことができます。ここでは、バインドを説明するポストがあります。具体的にはプレフィックスとは何ですか? [リンク] http://stackoverflow.com/questions/1317523/how-to-use-bind-prefix –

+0

主な問題のように私には、モデルが値の入力と同期されていないということになります。これはHtml.ActionLinkではなく、Ajax.ActionLinkです。私はそれが何か違いがあるかどうかは分かりません。パラメータとしてorderNumberとquantityを明示的に渡そうとすると、私はそれを変更した値ではなく元の値を取得します。 – AndersLindas

関連する問題