Asp.net mvc 保持模型属性

Asp.net mvc 保持模型属性,asp.net-mvc,asp.net-mvc-2,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

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

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

我会使用隐藏字段吗

是的,但前提是
颜色
可以根据不同的请求而有所不同,并且您需要在发布后使用

另一种方法是将其存储在
会话中

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

隐藏

@Html.HiddenFor(x => x.Color)
Session["YourKey"] = Color;
会话

@Html.HiddenFor(x => x.Color)
Session["YourKey"] = Color;

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

您可以通过ViewData或使用强类型视图将此数据传递给视图。@Bernie White,它已经是强类型视图了。我如何通过viewdata将其从视图传递到操作?唯一的替代方法是在操作中过帐字段或查看表单值。