C# 控制器视图中的ASP.net MVC5访问按钮
嘿,我是MVC的新手,所以我的问题是: 如何将视图上的按钮设置为False,以便从控制器可见 我的按钮查看代码为:C# 控制器视图中的ASP.net MVC5访问按钮,c#,asp.net,asp.net-mvc,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 5,嘿,我是MVC的新手,所以我的问题是: 如何将视图上的按钮设置为False,以便从控制器可见 我的按钮查看代码为: <Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button> 但是上面的代码似乎没有“看到”视图上的AdminMode按钮 我需要怎么做才能更改按钮?您可以使用razor在视图中隐藏东西 @if(Model.Admin.Visible) { &
<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>
但是上面的代码似乎没有“看到”视图上的AdminMode按钮
我需要怎么做才能更改按钮?您可以使用razor在视图中隐藏东西
@if(Model.Admin.Visible)
{
<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>
}
视图模型本质上只是一个容器类,您可以在其中向视图传递视图特定的信息
其他方法是使用ViewData/Viewbag(它们是相同的),这只是将数据传递到视图中的另一种方法
控制器:
ViewBag.IsAdmin == true;
public ActionResult getMainData()
{
//More code up here....
if (Permissions == "ADMIN") {
ViewBag.AdminMode = True;
} else {
ViewBag.AdminMode = False;
}
//More code down here....
}
视图:
@if(ViewBag.IsAdmin)
{
管理模式
}
MVC与WebForms有些不同。实际上,服务器上没有控件树,因此无法访问控制器中的任何元素。您可以做的是向控制器中的ViewBag
添加一个值,并根据该值更改按钮可见性
控制器:
ViewBag.IsAdmin == true;
public ActionResult getMainData()
{
//More code up here....
if (Permissions == "ADMIN") {
ViewBag.AdminMode = True;
} else {
ViewBag.AdminMode = False;
}
//More code down here....
}
视图:
@if(ViewBag.AdminMode){
管理模式
}
谢谢你提供的信息,杰西。你能不能也展示一下这个模型的样子,因为我没有使用它?我已经更新了几次帖子。你需要更多的澄清吗?所以我不需要在这个例子中使用模型?@StealthRT nope。但是您应该知道,因为MVC中的第一个字母是ModelViewBag,这是@Steve指出的最简单、最快速的选项,但是请理解,如果您有一个表单和一个操作来处理表单post,那么如果出现表单错误或者您只想再次渲染视图,您可能必须重置ViewBag变量。在这种情况下,Jesse Moreland的原始答案将是一个更好的选择。
public ActionResult getMainData()
{
//More code up here....
if (Permissions == "ADMIN") {
ViewBag.AdminMode = True;
} else {
ViewBag.AdminMode = False;
}
//More code down here....
}
@if (ViewBag.AdminMode) {
<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>
}