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