0

使っています

@(Html.EditorFor(m => m.Risk)) 

Riskオブジェクトの編集可能なすべての値を表示します。これがリスクを負う私のコントローラーに投稿されると、次のようになります。

[HttpPost]
public ActionResult Add(Risk formRisk, string programId)

リスクは作成されますが(これは魔法のようです)、列挙値が正しく入力されていても、すべての文字列値はnullです。また、フォームフィールド名の一致によって問題なく渡される別の値を効果的に取得しています。

それの多くは慣習に基づいているので、誰もがこれをどこから見始めるかについての手がかりを持っていますか?

4

1 に答える 1

0

私のビューのモデルは、フォームを投稿したメソッドがパラメーターとして受け取ったタイプと同じタイプではなかったことがわかりました。どうやら、これは推測されて間違っているかもしれませんが、MVC 3は、送信されたフォームを処理するときに、いくつかの興味深いリフレクションベースの魔法を実行しているようです。私がそのような方法を持っているとしましょう:

[HttpPost]
public ActionResult ProcessForm(Book book)
{
    string title = book.Title;
    //code for stuff
}

このアクションに投稿したフォームに「Title」という名前のフィールドがある場合、そのフォーム要素のその値は、「Title」という名前のパラメーターの任意のプロパティに自動的に設定されます。私はこれが起こったことを知りませんでしたが、それはかなりクールで、EditorForで正しく活用しています。=]興味を持ってくれた11人に感謝します。

この投稿は、あまり面白くなかったので、タンブルウィードのバッジを獲得しました。=]

于 2012-05-08T14:00:53.947 に答える