0

在 ASP.Net MVC 项目中,我使用 Razor 内置 _layout.cshtml 和带有页眉和页脚的经典两列布局。这个想法是在布局的右栏中显示我的应用程序视图,并在不重复代码的情况下对整个站点保持一致的外观......

问题是每次我调用一个视图并使用@RenderBody() 在我的布局右列中呈现它的内容时,整个布局都会刷新。这是正常行为吗?

这个 Razor 的布局概念中是否有任何内置机制来仅刷新呈现的视图内容而不是整个站点,或者我是否必须进行 jQuery Ajax 调用并用视图内容替换 div?

谢谢

艾蒂安

4

3 回答 3

1

如果你想动态地切换你的内容,你必须通过 ajax 加载数据,然后替换你网站的右栏...... Razor 没有“自动模式”来做到这一点。=P

我有一些使用这种“方法”的项目。我将我的视图呈现为部分视图(在控制器中),然后我得到 html 并将其放在我想要的位置。

于 2012-10-02T13:10:31.420 回答
0

您可以在调用该页面时使用 iframe 而不是 @RenderBody() @{ Layout = null;}

    <ul>
        <li class="LoadContent" data-url="http://api.jquery.com/not-selector/">Jquery-not-selector</li>
        <li class="LoadContent" data-url="http://api.jquery.com/contents/">Jquery-contents</li>
    </ul>
    <iframe src="" width="80%" height="600" id='frameDemo'></iframe> ​


  $(document).ready(function () {
        $('.LoadContent').click(function () {
             $('#frameDemo').attr('src', $(this).data('url'));
        });
    });​

用于演示

于 2012-10-02T13:10:48.190 回答
0

MVC 有一个内置的 ajax 机制,你可以使用:

http://msdn.microsoft.com/en-us/library/dd505086(v=vs.108).aspx

以我的经验,它只对非常简单的事情真正有用;我通常只是最终使用 $.post()。

于 2012-10-02T13:10:49.533 回答