1

我是 mvc4 的新手,我遇到了一个问题。
在控制器中,我将检查应隐藏或禁用哪个字段。
对于普通的 c# 我可以使用 .visible 来解决,

但是 MVC4 + razor,我完全不知道我不想为每个文本框添加 css 类,如下所示的文本区域

@Html.TextAreaFor(model => model.Message, new { @class = "hide" })

1- Javascript

//在控制器中构造隐藏字段
Viewbag.hideField = "#message,blah,blah";

//在视图中使用 javascript 隐藏
$(@Viewbag.hideField).hide();

这就是我能想到的,任何华丽的方式来实现这一点......

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

4

2 回答 2

0

您可以为此使用助手:

Html.HiddenFor(x => x.Message)

或将 css 规则应用于隐藏类:

.hidden {
    display: none;
}
于 2013-09-27T02:23:08.227 回答
0

在 HTML 中硬编码数据并使用 javascript 或 css 有什么不好?这几乎就是网络的运作方式!

这是另一种选择:在控制器中创建元素列表然后使用视图中返回的列表怎么样?

然后你可以这样做

var itemsToDisplay = 新列表()

if (User.Role == Admin)
{
var htmlHelper = HtmlHelper()
 itemsToDisplay.Add(htmlHelper.TextBoxFor(m => m.Name).ToString());
}

return View("view",itemsToDisplay)
于 2013-09-27T03:21:41.817 回答