保留模型属性



我有一个呈现Model的视图,其中Model被更改并发布到操作中。模型的某些属性保持不变,只需要传递到视图即可。例如,模型具有属性颜色和名称

**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

我需要使用隐藏字段吗?

是的,但前提是Color在不同的请求中可以不同,并且您在发布后需要value

另一种方法是将其存储在Session中。

更安全的方法是将其存储在会话中,因为即使是隐藏的字段也可以被操纵

隐藏

@Html.HiddenFor(x => x.Color)

会话

Session["YourKey"] = Color;

我使用ViewModel构建器解决了这个问题,我在上面写了一篇博客。正如@dknaack所说,请求中的任何内容都可以由用户操作,所以为了确保我的不可编辑模型属性保留正确的值,我创建了构建器类,用数据库中的适当值重写不可编辑的值。在我看来,这比使用隐藏字段更干净、更安全。

最新更新