我已经阅读了许多与此相关的问题/答案,但是我仍然觉得自己缺少一些东西。我已经把所有内容都弄哑了,以使其更易于阅读,但是本质上我的问题是这个-
我有一个剃刀页面,用户可以在其中编辑公司模型。用户只能编辑1个字段,即company name
。但是,我需要为该公司显示大约20个不同的信息字段。
在回发时,我检查模型是否有效,如果无效,则返回Page()
。问题是我的所有显示数据都丢失了。这意味着我不得不将20个不同的隐藏输入与每个属性一起放置,因为在发生模型错误的情况下我需要它。
public async Task<IActionResult> OnPostAsync()
{
if (ModelState.IsValid)
{
//*** success - return user to a different page
}
return Page();
}
<p>@Model.Company.Location.Name</p>
<form class="row" method="post">
@Html.HiddenFor(m => m.Company.CompanyId)
@Html.HiddenFor(m => m.Company.Location.Name)
@Html.HiddenFor(m => m.Company.Location.City)
@Html.HiddenFor(m => m.Company.Location.State)
//*** more listed here
@Html.DropDownListFor(m => m.Company.Name)
<input type="submit" value="Save" />
</form>
我的html有点像,以便您理解。我是否真的必须将所有标签值放在隐藏的输入中以确保在模型状态错误的情况下保留它们?
只是寻找最佳实践,因为这似乎非常……不正确。