2016-09-01 5 views
-1
내 컨트롤러에서 만든 버튼을 전달하는 방법이 있는지 궁금

: 모든컨트롤러의 뷰에 버튼의 인스턴스를 전달하는 방법은 무엇입니까?

<form method="get" action="/Account/Login"> 
    <h1>Login</h1> 
    <div class="col2"> 
     <label>Username: </label> 
     <input type="text" class="textEntry" name="username" value=""/> 
    </div> 
    <div class="col2"> 
     <label>Password: </label> 
     <input type="password" class="textEntry" name="password" value=""/> 
    </div> 
    <div class="col2"> 
     /*PLACE BUTTON HERE*/ 
    </div> 
</form> 
+4

이것은 "왜?"라는 질문을 제기하는 질문 중 하나입니다. 뷰 모델을 뷰에 보내고 필요하면 동적으로 버튼 속성을 설정하십시오. – Crowcoder

+2

컨트롤러는 단추를 만들면 안됩니다. 버튼은 정보가 표시/상호 작용하는 방식의 인공물입니다. 이것은 뷰 레이어의 범위입니다. –

+0

나는 다른 레이어에서 객체 메서드를 호출 할 것이고, 여전히 비교적 새로운이 – Jdavis649

답변

1

첫째 : 내보기에

public class AccountController : Controller 
{ 

    public ActionResult Login() 
    { 
     Button button = new Button(); 

     return View(); 
    } 
} 

는 버튼의 클래스는 자신이다 클래스 또는 System.Web.UI.WebControls에 속한? 첫 번째 경우에는 viewmodel을 통해 객체를 전달할 수 있습니다. return View(yourClass); 두 번째 경우 논리 레이어와 프레젠테이션 레이어를 분리해야하기 때문에 model-view-controller 패턴이 부자연 스럽습니다. 강력히 권하는 것은 View에서 전달하기 위해 적절한 viewmodel 클래스를 만드는 것입니다.이 클래스를 사용하면 버튼을 만들거나 (면도칼로) 만들 수 있습니다.

관련 문제