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

时间:2016-12-21 16:08:38

标签: c# asp.net asp.net-mvc asp.net-mvc-5

嘿所有我是MVC的新手,所以这是我的问题,我坚持:

如何在我的视图上设置一个按钮False,以便从控制器看到它?

我的按钮视图代码为:

public ActionResult getMainData()
{
  //More code up here....

  if (Permissions == "ADMIN") {
       AdminMode.Visible = True;
  } else {
     AdminMode.Visible = False;
  }

  //More code down here....
}

我的控制器代码是:

n <- [1..], n<=10, n >=1

但上面的代码似乎没有“看到”视图中的AdminMode按钮?

为了让我更改按钮,我需要做什么/做什么?

2 个答案:

答案 0 :(得分:4)

使用剃刀隐藏视图中的内容。

@if(Model.Admin.Visible)
{
<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>
}

请确保使用您的模型传递它。

型号:

public class Model
{
public Admin{get; set;}
}

视图模型本质上只是一个容器类,您可以将视图特定信息传递给视图。

其他方法是使用ViewData / Viewbag(它们是相同的东西),这只是将数据传递到视图的另一种方式。

控制器:

ViewBag.IsAdmin == true;

查看:

@if(ViewBag.IsAdmin)
{
<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>
}

答案 1 :(得分:3)

MVC与WebForms略有不同。实际上,服务器上没有控制树,因此您无法访问控制器中的任何元素。您可以做的是为控制器中的ViewBag添加一个值,并根据该值更改按钮可见性。

控制器:

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>
}