我是mvc4的新手,我有一个问题。
在Controller中,我将检查哪个字段应该隐藏或禁用
对于普通的c#我可以使用.visible来解决,
但是MVC4 + razor,我完全不知道 我不想为每个文本框添加css类,如下面的文本区域
@ Html.TextAreaFor(model => model.Message,new {@class =“hide”})
1- Javascript
//在控制器中构造隐藏字段
Viewbag.hideField =“#message,blah,blah”;
//在视图中使用javascript隐藏
$(@ Viewbag.hideField).hide();
这是我所能想到的,任何华丽的方式来实现这一目标......
这些字段是动态的,它基于用户角色来确定其显示或隐藏, 如果我在视图中进行检查,那将是一项繁琐的工作, 所以我想在那里我可以在控制器中以编程方式进行。
答案 0 :(得分:0)
您可以使用帮助器:
Html.HiddenFor(x => x.Message)
或将css规则应用于隐藏类:
.hidden {
display: none;
}
答案 1 :(得分:0)
在HTML中使用javascript或css对数据进行硬编码有什么不好?这几乎就是网络的运作方式!
这是另一个选项:如何在控制器中创建元素列表,然后使用视图中返回的列表?
然后你可以这样做
var itemsToDisplay = new List()
if (User.Role == Admin)
{
var htmlHelper = HtmlHelper()
itemsToDisplay.Add(htmlHelper.TextBoxFor(m => m.Name).ToString());
}
return View("view",itemsToDisplay)