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

时间:2011-04-02 01:54:31

标签: c# asp.net-mvc asp.net-mvc-3 razor browser-history

我有HomeController行动About。我想实现这种行为:

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

Case #2用户在主页上并点击了链接about,我想使用history.pushState更改网址并部分呈现(return PartialView();

我该如何实现这种行为?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

还有一个。

Restrict ASP.NET MVC Action's Using The ActionMethodSelectorAttribute

在ActionMethodSelectorAttribute中选择操作方法控件。