2011-01-07 2 views
0

MVC 양식에 문제가 발생했습니다. 특히 양식 제출 및 두 번째 양식 표시가 있습니다.제출 단추가 두 번째 양식을 트리거하면 두 번째 양식의 제출 단추가 원래 양식의 작업에 POST 요청을 보냅니다.

두 번째 양식의 제출 버튼은 원래 양식의 작업으로 이동합니다. 양식을 중첩 할 수 있는지 질문 : Why do nested forms in Asp.net mvc not have scope?. 양식 태그는 실제로 중첩 될 수 없기 때문에 양식이 변경되어 별도의 div에 있으므로 문제를 해결할 수 있습니다.

사용자가 첫 번째 양식에서 제출을 클릭하면 두 번째 양식이 나타납니다. 사용자가 해당 양식의 제출 단추를 클릭하면 새 양식의보기 및보기 모델 다음에 명명 된 양식이 아닌 원본 양식의 제어기 조치로 POST됩니다.

형태

Ajax.BeginForm(new AjaxOptions {UpdateTargetId="X"}))

번째 형태는 그 단부에 <input type="submit"> 태그를 갖고있다하여 삽입된다. 사용자가이 버튼을 클릭하면 폼의 모델에있는 값이 컨트롤러로 다시 보내지지 않습니다. 내가 명시 적으로 아약스 링크의 컨트롤러 액션을 지정하려고했습니다

는 :

<%: Ajax.ActionLink("Add OS","OS",new AjaxOption{UpdateTargetId="", HttpMethod="POST"})%>

이 다시 올바른 행동 양식을 보냅니다. 그러나 다시 보내지는 모든 값은 null입니다.

FormCollection은 Html.BeginForm으로 간단히 처리했으며 FormCollection 사전을 구문 분석했지만 해당 설정이 완전히 이해되지 않는 이유로 작동을 멈췄습니다.

무엇이 문제입니까? 나는 다시 웹 양식의 땅에있는 것처럼 느껴진다. ...

+0

아마도 이것은 http://stackoverflow.com/questions/649513/how-do-i-perform-a-secondary-action-i-e-calculate-fields-in-asp-net-mvc와 비슷한 문제입니까? – rsteckly

답변

0

나는이 문제가 당신이 두 가지 다른 형태를 동일한 행동에 제출하려고 시도하고 있다고 생각한다. 일반적으로 두 개의 양식이있을 때 필드가 포함 된 두 개의 서로 다른 연관된보기 모델이 있습니다. 그래서 두 가지 다른 컨트롤러 동작을하는 것이 좋습니다.

+0

안녕하세요 - 사실, 새로운 양식에 대한 다른 컨트롤러 작업이 있습니다. 다른 뷰 모델도 있습니다. 문제는 제출 단추가 두 번째 컨트롤러 동작이 아니라 첫 번째 컨트롤러 동작에 게시된다는 것입니다. Ajax.ActionLink를 사용하여 게시 할 위치를 수동으로 지정하려고하면 올바른 작업으로 이동하지만 빈 값을 되돌려 보냅니다. – rsteckly

관련 문제