2016-11-11 5 views
1

MVC 6 코어 웹 응용 프로그램에서 간단한 부트 스트랩을 만드는 방법을 알고 싶습니다. 예를 들어 SQL 저장 프로 시저를 실행하거나 단순히 서버에서 날짜를 검색하거나 요청시 서버의 코드로 다른 것을 검색하여 텍스트 상자에 표시 할 수 있습니다. 특히 멋진 장식없이 최소한의 코드를 알고 싶습니다.runat 서버 구문 수정 MVC 6의 .net 코어 및 부트 스트랩

<asp:??? input type="button" runat="server" onclick="btn_Click" class="btn btn-default"> 

혹은

<div> 
<button type="button" class="btn btn-default" runat="server" onclick="btn_Click"> 
</div> 

는 그 아마도 간단한 질문을하지만 난이 이전 버전 또는 ASP 페이지에 MVC-6에서 수행하지되어야하는지에 대한 혼란

답변

2

그것은라는 아니에요 더 이상 MVC 6. 이제 ASP.NET Core 1.0이되었습니다. runat = "server"는 ASP.NET 양식 1.0을 지원하지 않으므로 웹 양식을 지원하지 않으므로 MVC 패러다임에 의존합니다. 같은 이유로 onclick 속성도 없습니다.

[HttpPost] 
    public IActionResult Post() { 
     /*do work here*/ 

     return View(); 
    } 



전체 예

에서 다음과 같이 보일 수 있습니다

<button type="submit" class="btn btn-default">Click Here</button> 

그리고 컨트롤러의 액션 메소드 :

은 그래서 버튼처럼 보일 수 있습니다 그 사람 nts는 양식에 여러 개의 버튼이있는 경우 어떤 버튼이 클릭되었는지 알 수있는 예를 묻습니다.

/Views/example/index.cshtml

<html> 
    <body> 
     <form asp-controller="example" asp-action="Index"> 
      <label>Value:</label><input name="someValue" type="text" maxlength="10" /> 
      <button name="btnOne" type="submit" class="btn btn-default">Click One</button> 
      <button name="btnTwo" type="submit" class="btn btn-default">Click Two</button> 
     </form> 
    </body> 
</html> 

/Controllers/example/ExampleController.cs 당신은에 대해 자세히 알아볼 수 있습니다


using Microsoft.AspNetCore.Mvc; 

namespace App.Web.Controllers { 

    public class ExampleController: Controller { 

     public ExampleController() { 

     } 

     [HttpGet] 
     [Route("/example/")] 
     public IActionResult Index() { 
      return View(); 
     } 


     [HttpPost] 
     [Route("/example/")] 
     public IActionResult Index(string someValue) { 
      string buttonClicked = ""; 


      if(HttpContext.Request.Form.ContainsKey("btnOne")) { 
       buttonClicked = "btnOne"; 
      } else if(HttpContext.Request.Form.ContainsKey("btnTwo")) { 
       buttonClicked = "btnTwo"; 
      } 

      return View("Index"); 
     } 

    } 
} 
예를 들면 : ASP.NET 코어의 양식은 여기에서 : https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms
그들은 w에 비해 놀라 울 정도로 유연합니다. ebforms하지만 처음에는 학습 곡선이 조금 가파릅니다.

+0

재미 있기 때문에 runat = server는 없지만이 작업을 후크 (IActionresult Post) [HttpPost]로 수행하는 리디렉터가 있습니다. 그런 다음 다른 동작에 대해 여러 개의 버튼이 있는지 궁금합니다. 예를 들어 어느 것이 눌 렸는지 감지 할 수있는 방법은 무엇입니까? – user3800527

+0

일반적으로 작업 메서드 이름에는 처리 할 뷰의 이름 (이 경우 Post)이 반영되므로 일반적으로보기 (일명 페이지)에 고정되어 있습니다. 따라서 어떤 버튼을 클릭했는지 알기 위해 일반적으로 버튼의 이름 속성을 통해 버튼에 이름을 지정하고 그 이름을 나머지 양식 데이터와 함께 다시 게시하게되며 해당 이름의 존재 여부를 확인할 수 있습니다 버튼을 클릭했습니다. –

+0

감사합니다. asp.net 핵심을 배우고 있지만이 개념을 이해하는 것이 어렵다는 것을 알고 있습니다. 마지막 의견에서 방금 설명한 내용이 표시된 작은 샘플을 알고 있을까요? 컨트롤러가 컨트롤러 폴더에 있어야하지만? – user3800527