如何使视图全部或部分渲染?

Bru*_*oLM 2 c# asp.net-mvc browser-history razor asp.net-mvc-3

我有一个HomeController动作About.我想实现这种行为:

Case #1用户打开页面/home/about并完全呈现视图(return View();)

Case #2用户在主页上并单击链接about,我想更改网址history.pushState并将其部分渲染(return PartialView();)

我怎样才能实现这种行为?

Mor*_*ner 6

您可以使用Request.IsAjaxRequest来检测是否使用Ajax请求调用了控制器操作.

作为替代方案,我建议将您的视图拆分为更小的部分,以便您的About.aspx视图使用部分视图,例如通过执行Html.RenderPartial("AboutBox").这为您提供了重用的强大功能,而不必使用if-sentence混乱您的行为.