【问题标题】:How can I create an ASP.Net MVC Helper to inspect other inputs on a form如何创建 ASP.Net MVC Helper 来检查表单上的其他输入
【发布时间】:2011-01-17 20:18:29
【问题描述】:

我想创建一个具有以下签名的扩展助手:

  • 公共静态 MvcHtmlString BindMissingFor(这个 HtmlHelper htmlHelper, Expression> 表达式)

我希望此方法通过提供的表达式模型进行反映,并查找尚未绑定到表单上的可绑定属性。

用例是我想要一些只允许用户与我的模型的一部分进行交互的视图。但是,我想在多个视图(向导)之间保留整个模型。

我当前的解决方案是对我不想显示的每个字段使用隐藏输入。我可能会用这个扩展方法做同样的事情,但我希望它为我完成工作,而不是复制/粘贴。

有没有办法从 HtmlHelper 扩展方法中检查当前表单的输入/选择?

【问题讨论】:

    标签: asp.net-mvc html-helper


    【解决方案1】:

    除非您将其作为参数传递,否则 html 助手无法知道视图的其他部分发生了什么,例如检查其他表单字段。此外,寻找尚未绑定到表单上的可绑定属性,您的意思也不是很清楚。对于在向导中保持状态,您可以查看当前位于 MVC Futures 程序集中的 Html.Serialize 助手。这个助手背后的想法是,它允许您将一些模型对象(标记为[Serializable])序列化为表单内的隐藏字段,并使用[Deserialize] 属性在控制器操作中取回其值。它在幕后使用 WebForms ViewState。您也可以对其进行加密。这是在多个页面之间在客户端上保持状态的好方法。

    【讨论】:

    • 谢谢,“查找可绑定属性”只是指任何非只读且尚未在表单中的属性。
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2017-04-15
    • 2014-06-14
    • 2016-06-08
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多