MVC4使用控制器隐藏或禁用字段

时间:2013-09-27 02:19:44

标签: c# asp.net-mvc-4 razor

我是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();

这是我所能想到的,任何华丽的方式来实现这一目标......

这些字段是动态的,它基于用户角色来确定其显示或隐藏, 如果我在视图中进行检查,那将是一项繁琐的工作, 所以我想在那里我可以在控制器中以编程方式进行。

2 个答案:

答案 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)