2012-01-26 78 views
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 

我用一个隐藏字段是什么?

+0

您可以通过ViewData将此数据传递给视图或使用强类型视图。 –

+0

@Bernie White,它已经是一个强类型的视图。我怎么能通过查看数据从视图到行动?唯一的选择是发布该字段或通过操作中的表单值。 – mishap

回答

1

是的,但是只有当Color可以在不同的要求不同,你需要该职位后value

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

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

隐藏

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

会议

Session["YourKey"] = Color; 
0

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