그것은라는 아니에요 더 이상 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하지만 처음에는 학습 곡선이 조금 가파릅니다.
재미 있기 때문에 runat = server는 없지만이 작업을 후크 (IActionresult Post) [HttpPost]로 수행하는 리디렉터가 있습니다. 그런 다음 다른 동작에 대해 여러 개의 버튼이 있는지 궁금합니다. 예를 들어 어느 것이 눌 렸는지 감지 할 수있는 방법은 무엇입니까? – user3800527
일반적으로 작업 메서드 이름에는 처리 할 뷰의 이름 (이 경우 Post)이 반영되므로 일반적으로보기 (일명 페이지)에 고정되어 있습니다. 따라서 어떤 버튼을 클릭했는지 알기 위해 일반적으로 버튼의 이름 속성을 통해 버튼에 이름을 지정하고 그 이름을 나머지 양식 데이터와 함께 다시 게시하게되며 해당 이름의 존재 여부를 확인할 수 있습니다 버튼을 클릭했습니다. –
감사합니다. asp.net 핵심을 배우고 있지만이 개념을 이해하는 것이 어렵다는 것을 알고 있습니다. 마지막 의견에서 방금 설명한 내용이 표시된 작은 샘플을 알고 있을까요? 컨트롤러가 컨트롤러 폴더에 있어야하지만? – user3800527