.NET MVC- 양식 제출은 onsubmit JavaScript 실행 대신 Postback을 원인합니다.

StackOverflow https://stackoverflow.com/questions/1097490

  •  11-09-2019
  •  | 
  •  

문제

jQuery를 사용하여 ajax 양식을 제출하려고합니다. 그러나 제출 () 함수를 호출하면 전체 페이지가 새로 고침됩니다. 양식의 onsubmit 부분을 실행해야합니다 (반환. false 페이지가 새로 고침해서는 안됩니다).

<%Ajax.BeginForm("AllocateAndUpdateMech", 
  New With {.Controller = "Planning", 
            .Id = Model.Id}, 
            New AjaxOptions With {
                       .LoadingElementId = "loading", 
                       .UpdateTargetId = Model.Id & "_alloc"}, 
            New With {.id = "allocate_" & Model.Id & "_" & item.UserId}
)%>
<%Html.Hidden("mechId", item.UserId)%>
<a href="javascript:void(0);" onclick="$('#<%="allocate_" & Model.Id & "_" & item.UserId %>').submit();">Allocate: <%=item.UserName%></a>
<%Html.EndForm()%>
도움이 되었습니까?

해결책

html ajax.beginform을 사용하면 양식이 ASP.NET MVC AJAX와 연결되어 있기 때문에 양식을 커밋 할 수 없습니다.

세 가지 솔루션이 있습니다.

가장 쉽고 가장 좋은 방법

jQuery $ .ajax를 사용하여 양식을 커밋하십시오

쉽지만 이상한 방법

양식에 제출 버튼을 넣으십시오. 숨겨진 상태로 설정하고 jQuery로 클릭하십시오.

어렵지만 질문에 대한 답

나는 당신이 여전히 당신이 묘사하는 것을 정확하게 할 수 있다는 것을 보았지만, 그것은 멋지게 보이지 않는 해결 방법이었습니다.

다음은 어떻게 끝났는 지 있습니다 양식 샘플을 제출하십시오

다른 팁

양식으로 제출 ()을 호출하면 해당 ajax 양식 기능을 사용하여 생성 된 OnSubmit 함수를 호출하지 않습니다. onsubmit 양식을 직접 호출해야합니다

예를 들어 $("#ViewCartPage form").onsubmit() 또는 더 나은 this.form.onsubmit()

sys.mvc.asyncform.handlesubmit 이벤트가 필요한 매개 변수를 포함하는 것을 잊지 마십시오 (내가 사용하지 않는 것이 무엇인지 확실하지 않음).

MS Ajax JS 라이브러리를 떨어 뜨리고 jQuery를 고수하는 것을 정말로 고려할 것입니다. MS JS Libs는 아무 이유없이 복잡한 물건을 만드는 잘못된 글로 작성된 눈에 띄는 멍청이로 가득합니다. JQuery 만 사용하여 상황이 훨씬 간단합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top