【发布时间】:2015-12-22 18:41:01
【问题描述】:
我使用MVC 5 渲染初始视图,使用Kendo MVVM 和WebApi 使用数据填充控件。从控制器返回的视图本质上是一个SPA 应用程序。在初始渲染视图之后,页面上的所有进一步活动都通过 Kendo MVVM 和 WebApi(客户端脚本)实现。
应用程序的菜单最初使用@Url.Action 链接来呈现新视图。这种方法的问题是,每次点击操作链接时,整页刷新都会重绘整个屏幕,包括顶部和侧边导航。
我用@Ajax.ActionLink 替换了@Url.Action 链接,并修改了控制器以返回部分视图。 @Ajax.ActionLink 允许将部分视图呈现为目标 Html 元素 (div)。
鉴于该应用程序本质上是 Html 5 应用程序而不是纯 MVC 应用程序,这是避免在选择新菜单项时刷新整页的最佳方法吗?
其次,我应该使用RenderBody() 还是有更好的方法?
问候 巴里
【问题讨论】:
-
您需要 Jquery 或 Ajax 的帮助才能使用 Get 或 POST 到您的 WebAPI 或只是控制器。只需使用 PartialView 返回。带有部分视图项 cshtml。如果您不需要为此联系服务器端。只需使用 jquery 或用于绑定,使用 KnockOUT JS。如果您在共享视图文件夹中有一个布局文件,则最好使用 RenderBody()。如果不想使用,只需通过 Layout = null 将其取下即可。 Render Body 只是 PHP 中的 Include() 之类的调用。它与渲染脚本的作用并没有太大的不同,但它确保在运行脚本之前一切都准备好了。
标签: c# .net asp.net-mvc mvvm asp.net-web-api