假设我有模型
public class ViewModel
{
[Required]
[Display(Name = "Email address")]
public string Email { get; set; }
public string ExtraData{ get; set; }
}
ExtraData
只是在GET操作中添加的一些额外文本:
[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辅助方法,但似乎找不到合适的方法只显示文本(不可编辑)并将其发回。
答案 0 :(得分:4)
您可以将额外数据作为隐藏字段包含在表单内以及文本框中:
<form>
@Html.TextBoxFor(m => m.Email)
@Html.HiddenFor(m => m.ExtraData)
<div>@Model.ExtraData</div>
<form>