jQuery 탭에 표시 할 MVC4 뷰를 얻으려고합니다. 여기에 내 코드입니다 :MVC4 내용이 포함 된 jQuery 탭
<div id="tabs">
<ul>
<li><a href="#appone">App One</a></li>
<li><a href="#apptwo">App Two</a></li>
</ul>
<div id="appone">
@{ Html.RenderPartial("~/Views/AppOne/Index.cshtml"); }
</div>
<div id="apptwo">
@{ Html.RenderPartial("~/Views/AppTwo/Index.cshtml"); }
</div>
</div>
문제는 첫 번째 탭의 내용이 표시 단지를 미세하지만 두 번째가 비어 있다는 것입니다. 부분보기가 렌더링되지 않은 것 같습니다.
jQuery 탭에서 페이지를로드 할 때 모든 탭의 내용을 강제로 업데이트하거나 페이지 뷰에서 부분 뷰를 강제로 렌더링하는 방법이 있습니까?
Login.cshtml
@{
AjaxOptions optsLogin = new AjaxOptions { UpdateTargetId = "login-tab-login" };
AjaxOptions optsRegister = new AjaxOptions { UpdateTargetId = "login-tab-register" };
}
<section id="login-tabs">
<ul>
<li><a href="#login-tab-login">Returning Customers</a></li>
<li><a href="#login-tab-register">New Customers</a></li>
</ul>
@using (Ajax.BeginForm("Login", "Account", optsLogin, new { id = "form-login" }))
{
<div id="login-tab-login">
@Html.Partial("Account/_Login")
</div>
}
@using (Ajax.BeginForm("Register", "Account", optsRegister, new { id = "form-register" }))
{
<div id="login-tab-register">
@Html.Partial("Account/_Register")
</div>
}
</section>
<script type="text/javascript">
$(function() {
$('#login-tabs').tabs();
});
</script>
내 부분적인 전망이 계정 하위 폴더의 공유 폴더에 있습니다
뷰에 직접 입력하지 않고 ActionResults를 호출해야합니다. 이것이 프레임 워크의 컨텍스트에서 실행되지 않기 때문에 아마 당신을 위해 작동하지 않는 이유 일 것입니다. –
그래, jQuerys load ('AppOne')를 사용하여 그렇게했습니다. 이것은 효과가 있었지만 자바 스크립트에 문제가있었습니다. 또한 ajax 로더에 내장 된 탭과도 작동하지만 탭을 누를 때마다 양식 데이터가 손실되어 다시로드됩니다. 탭 캐싱이 작동하지 않는 것 같습니다. – Nicros
각각 모델이있는 경우 RenderPartial 대신 RenderAction을 사용해야합니다. 그렇게하면 자신이 기대하고있는 각각의 모델을 그들에게 공급할 수 있습니다. 그렇게함으로써 당신은 그들이 가지고있는 모델의 맥락에서 렌더링하고 있습니다. –