我目前正在 MVC4 中创建一些用户配置文件编辑表单,并且为了测试,我将 UserId 属性呈现为表单上的只读文本框,如下所示:
<li>
@Html.LabelFor(model => model.UserId)
@Html.TextBoxFor(model => model.UserId, new { @readonly="readonly"})
</li>
当我接近完成编辑表单时,我删除了这个文本框,因为它只是用完房地产。完成此操作后,保存时发送回控制器的模型具有整数默认值 0,然后实体框架因无法更新任何行而崩溃。所以我在表格中添加了这个:
<li>
@Html.HiddenFor(model => model.UserId, new { @readonly="readonly"})
</li>
这是一个安全的举动吗?我应该将 ViewBag 用于这样的事情吗?在个人资料详细信息页面上,我呈现了一个编辑按钮,如下所示:
@Html.ActionLink("Edit", "Edit", new { id=Model.UserId })
这意味着 UserId 在链接中呈现。这是安全可靠的还是我需要重新考虑如何在 UI 中移动模型和 ID?
TIA,