【问题标题】:MVC - open page in View modeMVC - 在查看模式下打开页面
【发布时间】:2011-05-05 01:35:00
【问题描述】:

嗨 我想看看是否有人对如何在 MVC 中实现视图模式概念有一个绝妙的想法。因此,如果用户打开一个页面,该页面应该在查看模式下打开(所有控件都禁用),如果他们没有编辑权限,则应该正常打开。请注意,查看页面也有部分页面

【问题讨论】:

    标签: asp.net-mvc-views


    【解决方案1】:

    我认为您可以在 MVC 框架下完全控制您的页面。如果您使用标准的 MVC 方法生成输入控件,您可以按照以下方式进行。

    @Html.TextBox("MyTextBoxID", Model==null?"":Model.MyFieldValue, new {disabled = "disabled})
    

    如果你没有使用标准的 MVC 方法来生成输入控件。您可以创建自己的方法来生成输入控件。例如在MyExt.cs

    public static class MyExt
    {
        public static MvcHtmlString MyTextBox(this HtmlHelper html, string id, object value)
        {
                // check user privilege
                if (CurrentUser.CanEditThisPage /*Implement your own logic here */)
                     return html.TextBox(id, value);
                else
                     return html.TextBox(id, value, new {disabled = "disabled"});
        }
    }
    

    在你的页面中

    @using MyNamespace
    ...
    @Html.MyTextBox("MyTextBoxID", Mode==null?"":Model.MyFieldValue)
    

    另一种方式

    将指标从服务器端传递到客户端并使用 javascript 或 JQuery 禁用所有控件。

    @Html.Hidden("CanEdit", CurrentUser.CanEditThisPage)
    

    在 JavaScript 中

    void pageLoad() {
        if ($("#CanEdit").val() == "true"))
            $("input").attr("disabled", "disabled");
    }
    

    类似的东西(不确定语法的正确性:P)

    【讨论】:

    • 感谢您的快速回复。这回答了我的问题
    猜你喜欢
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多