2011-12-07 2 views
8

ASP.NET MVC3의 Ajax.BeginForm 메소드를 사용하는 중에 이상한 문제가 발생합니다. 양식은 올바른 작업 속성이있는 페이지에서 제대로 렌더링됩니다. 그러나 양식을 제출하면 "OnFailure"이벤트가 "찾을 수 없음"404 오류를 반환합니다.AJAX.BeginForm PostURL이 손상되었습니다.

피들러로 요청을 보면 게시물 URL이 "/ [Object NodeList]"인 것을 알 수 있습니다. 이는 분명히 유효하지 않습니다.

@using (Ajax.BeginForm("Save", "Items", new AjaxOptions { UpdateTargetId = "itemContainer", InsertionMode = InsertionMode.Replace, OnFailure = "onFailure"})) 
{ 
    <div style="position:absolute; bottom:20px; left:200px;"> 
     <button type="submit" id="Save" name="action" value="Save">Save</button> 
     <button type="submit" id="Cancel" name="action" value="Cancel">Cancel</button> 
    </div> 
} 
+0

문제에 기여한 눈에 거슬리는 아약스 라이브러리를 사용하고 있음을 언급해야합니다. 이것이 MVC 아약스의 "눈에 띄지 않는"맛의 문제인지 확실하지 않습니다. – jbrunken

답변

11

문제는 제출 버튼의 name 속성에 "action"을 사용하는 것이 었습니다. 이름 속성을 다른 값으로 변경하자마자 모든 것이 완벽하게 작동하기 시작했습니다.

난 혼란스러워하는 눈에 잘 띄지 않는 아약스 라이브러리에 jQuery 셀렉터가 있다고 추측합니다.

+3

감사합니다. 꽤 오래 동안이 똑같은 문제에 대해 내 머리를 두드렸다. – Japple

+0

yessss mate !! 그거였다! – wodzu

0

당신이 당신의 Web.config에서 또는 해제 눈에 거슬리지 자바 스크립트가 있습니까 다음과 같이

내 면도기 코드는? 먼저 ms Ajax 라이브러리를 추측하는 것은 goofy를 사용하므로 눈에 잘 띄지 않도록 jquery를 지원합니다.

양식 동작을 어떻게 설정합니까? 가능한 경우 양식 HTML 요소를 게시하십시오.

+1

수정 프로그램을 발견했습니다. 제출 버튼의 name 속성과 관련이 있습니다. – jbrunken

+0

제출 버튼의 이름이 게시 한 url을 변경 했습니까? 그렇게 이상하게 들린다! –

+0

버튼의 이름을 변경하면 @AdamTuliper 여기에 동의하는 것 같아요 당신이 게시하는 URL을 변경해서는 안됩니다. 이전에 사용하지 않은 것으로 다시 변경하면 중단됩니까? – Eonasdan