2

私の見解では、次のHTMLがあり、HTMLヘルパーを使用できることはわかっていますが、MVCにテキスト領域を作成させると、ページで使用するスクリプトが深刻な問題を引き起こすため、この場合は使用できません。

@Html.TextBox("name", "", new {  @placeholder = "name", @class = "formElement", @id="name"})
<textarea id="message" placeholder="comments" class="formElement"></textarea>

次に、コントローラーで、名前とメッセージを出力するための非常に基本的な行を設定しました。

    [HttpPost]
    public ActionResult Form(MessageViewModel model)
    {
        return Content("Name: " + model.name + " Message: " + model.message);
    }

名前はHTMLヘルパーで作成されているため、問題なくアクセスできますが、メッセージにアクセスできず、何も返されません。名前とメッセージの両方が私のViewModelで定義されています:

    public string name { get; set; }
    public string message { get; set; }

メッセージテキストエリアにあるテキストにアクセスするにはどうすればよいですか?

4

2 に答える 2

6

テキストエリアに「name」属性を追加する必要があります。html 要素は、その名前に基づいて投稿されます。

<textarea id="message" name="message" placeholder="comments" class="formElement"></textarea>
于 2012-12-12T21:25:58.433 に答える
1

MVC ii では、適切なモデルをビューに配置し、次の例のようにモデル プロパティを目的のコントロールに割り当てることをお勧めします。

@Html.TextAreaFor(m => Model.remark, 10, 5, new { style = "resize: none" })

は次の@Html.TextAreaForようにレンダリングされます。

<textarea cols="5" id="remark" name="remark" rows="10" style="resize: none"></textarea>

フォームが送信され、コントローラーのアクションがビューによって送信されたモデルで呼び出されると、正しい投稿が可能になります。

于 2012-12-14T08:37:46.350 に答える