【问题标题】:Simplest way to add a hidden field for all properties of a Asp.net MVC 3 model?为 Asp.net MVC 3 模型的所有属性添加隐藏字段的最简单方法?
【发布时间】:2011-12-09 21:59:26
【问题描述】:

我需要将模型的所有值传递给下一个控制器。我可以为模型的所有属性创建隐藏字段,但是当模型获取新字段时,这总是容易出错。

我试过这个:

@Html.HiddenFor(x => x)

但这只会导致错误

CS1660: Cannot convert lambda expression to type 'string' because it is not a delegate type

(我不喜欢使用 Tempdata,因为它的寿命很短,并且会重新加载未计划的页面) 有没有一种简单的方法可以做到这一点?

【问题讨论】:

  • 检查This answer
  • 这可以工作,但也有点笨重..

标签: asp.net-mvc-3


【解决方案1】:

为什么不直接从数据库中提取它呢?如果用户无法更改值,那么为什么需要来回发送呢?恶意用户可以修改隐藏字段值并尝试将其发布回服务器。从数据库中提取会更快、更安全。

【讨论】:

    【解决方案2】:

    您必须在 lambda 表达式中添加您正在使用的属性

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

    【讨论】:

    • 只是从模型中添加一个属性。我想一次性添加整个模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多