从视图发布数据时,除具有编辑器字段的属性外,所有属性都设置为 null
本文关键字:属性 字段 编辑器 null 设置 布数据 视图 数据 | 更新日期: 2023-09-27 18:35:16
我在"视图"页面中传递模型列表,并且仅编辑模型的"答案"属性。但在回发后,除 Answer 属性外,所有属性都设置为 null。
这是视图代码。
@model List<NewsLetter.Models.NewsLetterQuestions>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
for (var i = 0; i < Model.Count(); i++)
{
<div>
@Html.DisplayFor(m => m[i].Question)
</div>
<div>
@Html.EditorFor(m => m[i].Answer)
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
任何帮助都将是可观的。
这就是模型绑定应该的工作方式。它将创建NewsLetterQuestions
对象,并设置表单发送到控制器操作的属性。有关示例的说明 ASP.NET 请参阅 MVC 模型绑定简介。
如果需要将视图中的其他模型数据发布到控制器,可以使用Html.HiddenFor(model => model.SomeProperty)
。请参阅 Html.HiddenFor 是做什么的? 进行解释。
DisplayFor()
不返回任何内容。您可以使用以下代码。
@model List<NewsLetter.Models.NewsLetterQuestions>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
for (var i = 0; i < Model.Count(); i++)
{
<div>
@Html.TextBoxFor(m => m[i].Question, new {@readonly = "readonly"})
</div>
<div>
@Html.EditorFor(m => m[i].Answer)
</div>
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
希望这有帮助