Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制器视图中的ASP.net MVC5访问按钮_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

C# 控制器视图中的ASP.net MVC5访问按钮

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) { &

嘿,我是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>
}
视图模型本质上只是一个容器类,您可以在其中向视图传递视图特定的信息

其他方法是使用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>
}