스티브 샌더슨 (Steve Sanderson)이 자신의 ASP.NET MVC 책에서 설명하는 방식을 좋아합니다. 그것은 JSON과 함께 작동하지만, 부분을 반환합니다. 이렇게하면 Ajax와 Ajax가 아닌 버전을 모두 쉽게 얻을 수 있습니다. 기본적으로 검색은 비 아약스의 게시물과에서 제출
public ActionResult GetArticles(string category)
{
...
if(Request.IsAjaxRequest())
{
return PartialView("ArticleListPartial",articleModel)
}
else
{
return View("ArticleListPage",articleModel)
}
}
:
<form id="articleSearch" method ="post" action="/Article/GetArticles" >
...
<input type="submit" value="Get the articles!" />
<form>
그런 다음이
는 cotroller 요청의 종류에 따라보기 또는 일부를 반환 Javascript를 사용할 수있을 때 시작하고 Ajax를 통해 요청을 제출하는 Jquery 스 니펫
<script language="javascript" >
$(function() {
$("#articleSearch").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(modelResponse) {
("#articleResultContainer").html(modelResponse);
});
return false;
});
});
</script>
예, 그렇습니다. 'linq를 사용하여 SQL Server DB 쿼리 ... (x => x.Category == categoryVal) 효과가 있습니다. 현재 페이지를 다시로드하지 않으면 부분보기를 사용할 수 있습니까? 나는 같은 페이지에 머물러 있으며 아약스를 사용하여 결과를 얻고 결과 div에 칠합니다. – Scott
가능합니다. 부분 뷰는이 경우에 선호되는 접근 방식 인 클래스 또는리스트에 바인딩 될 수 있습니다. 그런 다음 컨트롤러에서 PartialClass ("PartialClassName", List )를 반환합니다. 그것이하는 일은, 당신이 염려 할 필요가있는 한 많은 HTML입니다. jQuery 호출 성공에 따라 바인드 된 div를 html로 바꾼다. 작업 완료! 희망이 의미가 있습니다. –
griegs
죄송합니다. "bounding div의 html 콘텐츠"를 읽어야합니다. 따라서 div에는 귀하의 콘텐츠를 구성하는 모든 div가 들어 있습니다. 바운딩 div에 클래스 이름을 지정하고 $ ('. YourBoundingDivClassName')을 사용하십시오 .html (NEWHTML); – griegs