programing

ASP.NET - Ajax.파라미터를 사용하여 양식 OnSuccess 콜백 시작

codeshow 2023. 10. 4. 23:06
반응형

ASP.NET - Ajax.파라미터를 사용하여 양식 OnSuccess 콜백 시작

OnSuccess 콜백에 더 많은 매개 변수를 추가하고 싶습니다(하지만 axis 컨텍스트 변수는 유지).
제가 한 일은:

 using (Ajax.BeginForm("Register", new AjaxOptions() {
   OnSuccess = "new function(arg){HandleBasicForm(arg , 'MyCustomVariable')}",
    ...

JS 기능:

function HandleBasicForm(ajaxContext , myCustomVariable){
            var content = ajaxContext.get_response().get_object();
            ....
        }

그렇지만ajaxContextnull입니다.
그걸 어떻게 하는 거죠?

사용하시니까.get_response()당신이 (당신이 설정한 MVC3에서) 눈에 거슬리지 않는 자바스크립트를 사용하지 않는 것 같습니다.HtmlHelper.UnobtrusiveJavaScriptEnabled = falseMicrosoftAjax,js 및 MicrosoftMvcAjax.js 파일을 참조하고 있습니다.만약 그런 경우라면 당신은 그들이 그들을new키워드.

 using (Ajax.BeginForm("Register", new AjaxOptions() { OnSuccess = "function(arg){HandleBasicForm(arg , 'MyCustomVariable')}"})

만약 당신이 jquery.unobrusive-ajax.js와 함께 MVC3의 눈에 띄지 않는 javascript 지원을 사용한다면, 당신은 암묵적으로 사용 가능한 것을 사용할 수 있습니다.xhr그리고.data변수 대신에.

using (Ajax.BeginForm("Register", new AjaxOptions() { OnSuccess = "HandleBasicForm(data, 'MyCustomVariable')"})

당신의 핸들러는 사용할 필요가 없을 것입니다.get_response().get_object()역직렬화된 JSON 데이터는 당신의 핸들러에게 직접 전달될 것이기 때문입니다.

function HandleBasicForm(data, myCustomVariable){
    var someValue = data.someProperty; //work with data object returned
    ....
}

OnSuccess수령.data, status, xhr서버에서:

OnSuccess = "myJsMethod(data, status, xhr)"

그리고 그와 동등한 자바스크립트 방식은 다음과 같습니다.

 function myJsMethod(data, status, xhr) {
}

이제 컨트롤러가 반환됩니다.

return Json(new { param1 = 1, param2 = 2, ... }, JsonRequestBehavior.AllowGet);

그다음에myJsMethod당신은 에 접근할 수 있을 것입니다.data.param1등등.

언급URL : https://stackoverflow.com/questions/8034530/asp-net-ajax-beginform-onsuccess-call-back-with-params

반응형