您好 我试图看看是否有人对如何在MVC中实现View模式概念有一个睿智的想法。因此,如果用户打开页面,页面应该以视图模式打开(禁用所有控件),如果他们没有编辑权限,则其他应该正常打开。请注意,“查看”页面也包含部分页面
答案 0 :(得分: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)