2016-12-21 3 views
2

는 이봐, 난 지금 여기 MVC에 새로 온 사람 모두가 내가 붙어있어 내 질문에 : 나는에서 볼 수에 대한 거짓 내보기에 단추를 설정하는 방법ASP.net MVC5 컨트롤러에서보기 버튼을 접근이

제어 장치?

<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 버튼 "을 참조하십시오"하지 않는 것 전망?

버튼을 변경하려면 어떻게해야합니까?

답변

3

면도칼을 사용하여보기에 물건을 숨 깁니다.

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

감사합니다. 내가 사용하지 않을 때부터 모델이 어떻게 보이는지 보여줄 수 있습니까? – StealthRT

+0

몇 번 게시를 업데이트했습니다. 더 이상의 설명이 필요합니까? –

+0

그거야! 감사합니다 제시! – StealthRT

3

MVC는 웹폼보다 약간 다르다. 실제로 서버에는 제어 트리가 없으므로 컨트롤러의 모든 요소에 액세스 할 수 없습니다. 당신이 할 수있는 일은 컨트롤러의 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> 
} 
+0

그래서이 예제에서는 모델을 사용할 필요가 없습니까? – StealthRT

+0

@StealthRT nope. 하지만 MVC의 첫 글자가 Model – Steve

+0

ViewBag 일 때부터 @Steve가 지적한 것처럼 가장 쉽고 빠른 옵션이 될 것입니다. 그러나 양식 게시를 처리 할 양식과 작업이있는 경우에는 해당 작업을 다시 설정해야 할 수도 있습니다. ViewBag 변수에 양식 오류가 있거나보기를 다시 렌더링하려는 경우. 그렇다면 Jesse Moreland의 원래 대답이 더 나은 선택이 될 것입니다. –