加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 我可以使用MVC全局动作过滤器来禁用表单字段吗?

发布时间:2020-12-16 09:33:54 所属栏目:asp.Net 来源:网络整理
导读:我们的应用程序的一些用户将拥有对我们许多页面的只读访问权限,在我们当前的Web表单应用程序中,这意味着他们会看到表单,但所有字段都被禁用.我们正在研究MVC 3并寻找实现此功能的最干净,最惯用的方式. 到目前为止一些想法: 全局操作过滤器和编辑模板的某种
我们的应用程序的一些用户将拥有对我们许多页面的只读访问权限,在我们当前的Web表单应用程序中,这意味着他们会看到表单,但所有字段都被禁用.我们正在研究MVC 3并寻找实现此功能的最干净,最惯用的方式.

到目前为止一些想法:

>全局操作过滤器和编辑模板的某种组合.
>一个自定义的Html帮助程序,如Html.SecureTextBox等…

我倾向于排名第一,但我想知道是否有更多MVC经验的人/ gals以更好的方式解决了这个问题.

解决方法

我同意使用基本视图模型,或者可能只是具有“CanEdit”类型属性的接口.如果你去接口路由,你可以在OnActionExecuted方法的ActionFilter中设置属性.

要将它绑定到视图,创建一个新的HtmlHelper将非常??简单.我使用TextBoxFor作为基类,因为它可以访问视图的模型.然后,您可以检查该属性并创建必要的HTML属性.但是,通过这条路线,您需要为您需要的每种输入控件创建一个新的帮助器(文本框,选择列表等).

在不知道您正在做什么的所有细节的情况下,更简单的想法是不为只读用户提供“保存”按钮. “保存”按钮将由视图模型中的一个属性(或ViewData,如果您愿意)驱动.

其他几个人提到仍然需要服务器端限制来阻止人们绕过客户端限制.您需要一个动作过滤器. This link对此有一个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读