1

私のモデルには「output」というプロパティがあり、フォームには「output」という名前のTextBoxがあり、どちらもまったく同じスペルです。フォームに記入して投稿すると、戻ってきたビューに予期しない結果が生じます。

具体的には、投稿された「出力」フォーム変数を受け取り、コントローラーメソッドでモデルにバインドします。次に、モデルをビューに戻す前に、この変数を別の値に変更します。

投稿された出力プロパティは「1つのもの」です私のモデルプロパティは「別のもの」に設定されています

私は私のコードにこれを持っています:<%= Html.TextBox("output") %>

これにレンダリングされます:<input id="output" name="output" type="text" value="one thing" />

ただし、デバッグ時には、モデルに正しい値(「別の」)が含まれています。

コントローラで割り当てられた値ではなく、投稿された値を使用します。それを修正する理由と方法はありますか?

4

1 に答える 1

2

次のように強く型付けされたビューを使用していると仮定します。

<%@ Page ... Inherits="System.Web.Mvc.ViewPage<...TestModel>" %>

そして、あなたの代わりにEditorForを持っている

<%= Html.TextBox("output") %>そのようです<%= Html.EditorFor(p=>p.output) %>

あなたはあなたのコントローラーで行うことができます

ModelState.SetModelValue("output", new ValueProviderResult("Some string", string.Empty, new CultureInfo("en-US")));

同様の質問がここで行われました

于 2009-12-11T11:52:34.203 に答える