2

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

4

1 回答 1

0

我认为您可以在 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)

于 2011-05-05T01:52:51.270 回答