programing

ASP.NET MVC: 레이저 뷰에서 컨트롤러 액션 메서드를 호출할 수 있는 모든 방법

goodjava 2023. 3. 11. 08:58

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