1
첫 번째, 나쁜 영어로 죄송합니다.ajax.BeginForm을 사용하여 콘텐츠를 변경하는 방법은 무엇입니까?
한 사람이 "Page1"버튼을 클릭하면 컨트롤러는 "Page1"의 렌더 부분과 "page2"및 "allPage"에 대해 동일한 것을 반환합니다.
@{
ViewBag.Title = "Title";
}
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<h2>Title</h2>
@using (Ajax.BeginForm("NameAction", //controller action name
"NameController", //controller name
new AjaxOptions //ajax options that tell mvc how to perform the replacement
{
UpdateTargetId = "ViewPage", //id of div to update
HttpMethod = "Post" //how to call the controller action
}, new { id = "FormName" }))
{
<input type="submit" id="btn" value="p1" id="p1"/>
<input type="submit" id="btn" value="p2" id="p2"/>
<input type="submit" id="btn" value="AllPage" id="AllPage"/>
<div id="ViewPage">
//render partial view
</div>
}
그리고 내 컨트롤러는 다음과 같습니다 :
내 전망이다
public class NameController : Controller
{
[HttpPost]
public ActionResult NameAction(String btn)
{
if (Request.IsAjaxRequest())
if(btn="p1")
return PartialView("p1");
if(btn="2")
return PartialView("p2");
if(btn="3")
return PartialView("p3");
return View();
}
}
Request.isAjaxRequest는 항상 false 동일하고 partialview 모든 페이지를위한
감사합니다 사업부를 업데이트 할 수 있지만 삭제되지 너의 도움이.
MVC2 또는 MVC3 :
하면 Ajax.BeginForm 작동하고 AJAX 요청을 보내도록 당신이 당신의 페이지에
jquery.unobtrusive-ajax
스크립트를 포함했는지 확인? 질문 태그를 정리하십시오. – ThiefMaster@ThiefMaster, 나는 '면도날'과 함께 사용할 수없는'asp.net-mvc-2' 태그를 제거했습니다. –
태그에 죄송합니다. 귀하의 수정을 위해 감사드립니다. Darin Dimitrov. 그게 내 "문자열 btn"솔루션은 null이 아니지만 아약스 옵션이 작동하지 않기 때문에 :(왜냐하면 내가 내 컨트롤러 isAjaxRequest 항상 false로 테스트합니다. 그리고 partialview 내 페이지를 모두 지우고 div : s 업데이트 – Zoners