내 애플리케이션에 새 계정을 만들기위한보기가 있습니다. 이 뷰는 Html.BeginForm()으로 시작하고 오른쪽 컨트롤러 (Create)에 아무런 문제가 없습니다.MVC 1.0 Ajax.BeginForm()은 Html.BeginForm() 내부에 제출합니다.
나는 Ajax.BeginForm()을 추가하여 동일한 이름의 계정이 내 응용 프로그램에 아직 존재하지 않도록 할 것을 결정했습니다.
두 단추 중 하나를 사용하여 제출을 클릭하면 동일한 컨트롤러 (만들기)로 이동합니다. 어떤 제출 버튼을 클릭했는지 구분하기 위해 요청이 Ajax인지 확인한 다음 다른 코드 경로를 실행 해 봅니다. 그러나 Request.IsAjaxRequest()
은 실행되지 않습니다. MS Ajax를 사용하여 기존 양식에이 기능을 구현하는 가장 좋은 방법은 무엇입니까?
<% using (Html.BeginForm()) {%>
..............
<% using(Ajax.BeginForm("Echo",
new AjaxOptions() { UpdateTargetId = "EchoTarget" }))
{ %>
Echo the following text:
<%=Html.TextBox("echo", null, new { size = 40 })%>
<input type="submit" value="Echo" />
<% } %>
<div id="EchoTarget">
컨트롤러 코드 :
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(User newUser)
{
if (Request.IsAjaxRequest())
{
return Content("*you hit the ajax button");
}
else
{ //regular create code here.....
}
</div>
Iframe을 사용할 수도 있습니다. http://ajaxpatterns.org/IFrame_Call –
여러 양식이 실제로 문제가되지 않습니다. 문제를 중첩시키는 것만 큼 중요한 것은 아닙니다.JS에 의지한다면 HTML 양식을 사용하는 대신 POST를 직접 작성할 수도 있습니다. –
유능한 우아한 솔루션은 jQuerypowerhorse를 MVC 카트에 연결 한 후 JSON 요청 메커니즘을 사용하는 것입니다. –