2

假设我有模型

public class ViewModel 
{
    [Required]
    [Display(Name = "Email address")]
    public string Email { get; set; }

    public string ExtraData{ get; set; }
}

ExtraDataGET 操作中添加的一些额外文本在哪里:

    [HttpGet] 
    public ActionResult ActionMethod()
    {
        ViewModel modelWithExtraData= new ViewModel{ ExtraData = "Some extra data." };
        return PartialView("MyView", modelWithExtraData);
    }

并在视图中呈现如下:

<form>
    @Html.TextBoxFor(m => m.Email)
    <div>@Model.ExtraData</div>
<form>

当此表单发布到控制器时,我希望额外数据“一些额外数据”完好无损并与模型一起发布,但这不会发生。

    [HttpPost]
    public ActionResult ActionMethod(ViewModel model)
    {
        //model.ExtraData = null ... Not good
    }

我查看了所有 @Html 辅助方法,但似乎找不到合适的方法来简单地显示文本(不可编辑)并将其发回。

4

1 回答 1

4

您可以将额外数据作为隐藏字段包含在表单中以及文本框旁边:

<form>
    @Html.TextBoxFor(m => m.Email)
    @Html.HiddenFor(m => m.ExtraData)
    <div>@Model.ExtraData</div>
<form>
于 2012-12-23T07:19:27.233 回答