保留模型属性

时间:2012-01-26 20:58:18

标签: asp.net-mvc asp.net-mvc-2

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

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

我是否使用隐藏字段?

2 个答案:

答案 0 :(得分:1)

是的,但只有当Color在不同的请求中有所不同,并且您需要value后发帖。

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

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

<强>隐藏

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

<强>会话

Session["YourKey"] = Color;

答案 1 :(得分:0)

我使用ViewModel构建器解决了这个问题,我已经编写了a blog。正如@dknaack所说,请求中的任何内容都可以被用户操纵,因此为了确保我的不可编辑模型属性保留正确的值,我创建了一个构建器类,它只是使用来自中的适当值覆盖不可编辑的值。数据库。在我看来,这比使用隐藏字段更清晰,更安全。