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 而不是我所期望的,即“hi”

这是我的 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 回答