【发布时间】:2021-01-22 01:17:48
【问题描述】:
我有一个 ASP.NET Core 5 Web 应用程序,想知道对部分视图和普通视图使用什么策略。
因此,例如,当用户在 Web 浏览器中导航到 /bars 时,我想加载带有 Bar 列表的页面(以及菜单、页眉、页脚和其他共享布局元素) .
但是,如果用户单击 Bars 菜单,我只想重新加载主容器(没有菜单、页眉、页脚等)。
在Controller 中,我是否应该为每个带有PartialAction 的页面创建一个Action,如下所示:
public async Task<IActionResult> Index()
{
return View(await _repository.ListAsync<T>());
}
public async Task<IActionResult> IndexPartial()
{
return PartialView(await _repository.ListAsync<T>());
}
然后用/Bar/IndexPartial调用菜单上的AJAX,把主要动作留给普通视图?相关,我应该为每个操作创建单独的视图吗?
【问题讨论】:
-
默认情况下,锚标签将导航到您设置的任何路线。为了异步重新加载页面的一部分,您需要编写客户端代码。您必须处理该链接单击,进行 ajax 调用,然后将返回的 HTML 交换到主 div 中。听起来您正在尝试构建“单页应用程序”。如果您希望拥有客户端路由,您可能希望使用 Angular 或 VueJS 等前端反应性框架之一。
-
我知道客户端应该是主角,但我要问的是如何从服务器端,控制器行为来管理它。
-
嘿@serge。您还记得我的回答或其他任何一个回答是否解决了这个问题吗?如果是这样,您介意将适当的答案标记为已接受的答案吗?
标签: c# asp.net-core asp.net-core-mvc .net-5 asp.net-core-5.0