1

何かちょっと困ってる。

次のような HttpGet メソッドがあります。

[HttpGet]
public ActionResult Form()
{
    MyModel model = new MyModel();
    model.something = "hi";
    return View(model);
}

私のモデルでは:

public string something { get; set; }

[Display(Name="Something Else:")]
public string somethingelse { get; set; }

そして私の見解では、私はフォームを持っています:

@model Path.To.Models.MyModel

@Html.TextBoxFor(model => model.somethingelse)

<input type="submit" value="Submit" />

問題は、フォームが送信された後、model.something が "こんにちは" という期待ではなく null として返されることです。

これが私のHttpPostです

[HttpPost]
public ActionResult Form(MyModel model)
{
    // model.somethingelse equals the form value, which is right
    // model.something is null, instead of what I expect - "hi"

    return View(model);
}

誰でもこれで私を助けることができますか?フォーム送信後に GET から POST にデータを取得する必要がありますが、null が返されます。

ありがとう

4

2 に答える 2

3

ビューの非表示フィールドに「変更されていない値」を配置する必要があります

@Html.HiddenFor(m => m.something) 

またはそれは渡されません!

于 2012-04-12T12:06:00.273 に答える
2

somethingフォームとともに値を送信する必要があります。非表示の入力を使用してこれを行うことができます。

@model Path.To.Models.MyModel

@Html.HiddenFor(model => model.something)
@Html.TextBoxFor(model => model.somethingelse)

<input type="submit" value="Submit" />
于 2012-04-12T12:05:49.370 に答える