Asp.net mvc 4 模型到视图的最佳实践

Asp.net mvc 4 模型到视图的最佳实践,asp.net-mvc-4,Asp.net Mvc 4,我的视图没有使用视图中的所有属性。例如,userId属性不需要显示在视图上。现在我将W值存储在一个隐藏字段中。是否有一种标准的或更安全的方法来保持我的视图完好无损,比如会话或MVC中的其他内容,而不通过字段或隐藏字段公开视图中我的模型的所有数据 这似乎是一个基本的问题,我可能只会将它存储在一个会话中,但我很好奇,MVC是否提供了不同的支持,或者是否有我看过的最佳实践方式 编辑 好吧,我遗漏的是。当表单将模型提交回控制器时,我不将UserId字段存储在只读可编辑值或隐藏字段中时,UserId为nu

我的视图没有使用视图中的所有属性。例如,userId属性不需要显示在视图上。现在我将W值存储在一个隐藏字段中。是否有一种标准的或更安全的方法来保持我的视图完好无损,比如会话或MVC中的其他内容,而不通过字段或隐藏字段公开视图中我的模型的所有数据

这似乎是一个基本的问题,我可能只会将它存储在一个会话中,但我很好奇,MVC是否提供了不同的支持,或者是否有我看过的最佳实践方式

编辑 好吧,我遗漏的是。当表单将模型提交回控制器时,我不将UserId字段存储在只读可编辑值或隐藏字段中时,UserId为null


我想问的是,其他国家是如何防止这种情况发生的?隐藏不需要显示的用户Id(或任何属性)的正常最佳做法是什么?

在每次请求时发送客户端上的UserId属性没有什么错。您应该在服务器上实现授权逻辑,以检查来自浏览器的此用户id是否实际属于当前已验证的用户。无需为此使用任何ASP.NET会话


如果您使用跟踪当前经过身份验证的用户,则始终可以安全地检索此用户。

是,您可以从视图中删除这些字段(您没有从用户处获取任何值)。这是简单和标准的。如果您在删除后遇到任何问题,都可以帮助解决。当模型提交回控制器时,如果我没有这些字段或在隐藏字段中表示值,则未存储在隐藏字段或可编辑字段中的字段将返回nullYes。。我也有这个问题。。当您在控制器中获取视图时,可以为该空字段设置一个值。因为你不是从用户那里得到的。。因此,您可以将其放在服务器端,在Controlleries中很容易访问。我正在使用Forms Auth。也许问题真的来了。这是我的第一个完全成熟的分层(分层)MVC应用程序。它旨在支持MVC web客户端和带有webApi的移动客户端。请原谅我的无知。我不应该一直使用ORM模型,而是应该根据用户需要操作的内容来设置每个ORM模型的子集。这似乎需要做很多额外的工作,这仍然让我不得不手动告诉保存过程应该更新哪个字段。我总是为每个特定视图编写视图模型。一个视图模型可以由多个域模型组成。当你更新一个有10个字段的表,而该模型只给用户3个字段进行更新时,情况会怎样。这是否意味着你得到了实体更新更改的字段标记他们修改和保存。所以所有未修改的字段都不会被更改?好的,谢谢。这使情况变得明朗了许多。让我问一个问题,你不觉得维护一堆模型子集很重要吗?