ASP.NET MVC: 레이저 뷰에서 컨트롤러 액션 메서드를 호출할 수 있는 모든 방법
이게 꽤 기본적인 질문인 거 알아
하지만 가능한 모든 선택지를 알려주시겠어요?
레이저 뷰에서 제어 조치 방법(일반적으로 모든 서버 측 루틴)을 호출하고,
어떤 시나리오에서 각각이 사용하기에 가장 적합한지 확인합니다.
감사해요.
방법 1 : jQuery Ajax Get call (부분 페이지 갱신)을 사용합니다.
데이터베이스에서 jSon 데이터를 검색해야 하는 경우에 적합합니다.
컨트롤러의 액션 방법
[HttpGet]
public ActionResult Foo(string id)
{
var person = Something.GetPersonByID(id);
return Json(person, JsonRequestBehavior.AllowGet);
}
Jquery GET
function getPerson(id) {
$.ajax({
url: '@Url.Action("Foo", "SomeController")',
type: 'GET',
dataType: 'json',
// we set cache: false because GET requests are often cached by browsers
// IE is particularly aggressive in that respect
cache: false,
data: { id: id },
success: function(person) {
$('#FirstName').val(person.FirstName);
$('#LastName').val(person.LastName);
}
});
}
개인 클래스
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
방법 2 : jQuery Ajax Post 콜 사용(부분 페이지 갱신).
데이터베이스로 페이지 투고 데이터의 일부를 작성해야 할 경우에 적합합니다.
포스트 방식도 위와 같습니다.바꾸기만 하면 됩니다.[HttpPost]액션 메서드를 사용하여 다음과 같이 입력합니다.postjquery 메서드의 경우.
자세한 내용은 여기에서 MVC 컨트롤러에 JSON 데이터 게시 확인
방법 3 : As a Form post 시나리오(전체 페이지 갱신).
데이터를 데이터베이스에 저장 또는 업데이트해야 하는 경우에 적합합니다.
보다
@using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post))
{
@Html.TextBoxFor(model => m.Text)
<input type="submit" value="Save" />
}
액션 방법
[HttpPost]
public ActionResult SaveData(FormCollection form)
{
// Get movie to update
return View();
}
방법 4 : 폼의 취득 시나리오로서(전체 페이지 갱신).
데이터베이스에서 데이터를 가져와야 할 경우에 적합합니다.
위와 같은 메서드도 취득하여 교환해 주십시오.[HttpGet]액션 방법 및FormMethod.GetView의 폼 메서드는 다음과 같습니다.
이것이 당신에게 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/14049817/in-asp-net-mvc-all-possible-ways-to-call-controller-action-method-from-a-razor
'programing' 카테고리의 다른 글
| jQuery를 사용한 병렬 비동기 Ajax 요청 (0) | 2023.03.11 |
|---|---|
| 몽구스:CastError: 경로 "_id"에서 값 "개체 개체"에 대해 ObjectId로 캐스팅하지 못했습니다. (0) | 2023.03.11 |
| ng-app 지시어 배치(html vs body) (0) | 2023.03.11 |
| 새로운 React Context API는 재렌더를 트리거합니까? (0) | 2023.03.11 |
| AJAX 응답 텍스트 반환 방법 (0) | 2023.03.11 |