我有一个渲染模型的视图,其中模型被更改并发布到一个动作。 模型的某些属性保持不变,只需将其传递给视图即可。 例如。模型具有属性颜色和名称:
**View:**
Model.Name - used for for something.
Model.Color - not used, just needs to be preserved and passed on to action.
[HttpPost]
**Action:**
String Name = Model.Name
String Color = Model.Color
我是否使用隐藏字段?
答案 0 :(得分:1)
是的,但只有当Color
在不同的请求中有所不同,并且您需要value
后发帖。
另一种方法是将其存储在Session
中。
更安全的方法是将其存储在会话中,因为即使隐藏的字段也可以被操作
<强>隐藏强>
@Html.HiddenFor(x => x.Color)
<强>会话强>
Session["YourKey"] = Color;
答案 1 :(得分:0)
我使用ViewModel构建器解决了这个问题,我已经编写了a blog。正如@dknaack所说,请求中的任何内容都可以被用户操纵,因此为了确保我的不可编辑模型属性保留正确的值,我创建了一个构建器类,它只是使用来自中的适当值覆盖不可编辑的值。数据库。在我看来,这比使用隐藏字段更清晰,更安全。