簡體   English   中英

ASP.net MVC5從控制器訪問視圖中的按鈕

[英]ASP.net MVC5 accessing button in view from controller

嘿所有我是MVC的新手所以這是我的問題我堅持:

如何在我的視圖上設置一個按鈕,從控制器可見?

我的按鈕視圖代碼是:

<Button class="btn btn-primary btn-large btnCustom5" id="AdminMode">Admin Mode</Button>

我的控制器代碼是:

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

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

  //More code down here....
}

但上面的代碼似乎沒有“看到”視圖上的AdminMode按鈕?

為了讓我更改按鈕,我需要做什么/做什么?

您可以使用剃須刀隱藏視圖中的內容。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM