I have a HomeController with an action About. I want to achieve this behavior:
Case #1 User open the page /home/about and the view render fully (return View();)
Case #2 User is on the homepage and clicks a link about, I want to change the url using history.pushState and render it partially (return PartialView();)
How can I achieve this behavior?
You can use Request.IsAjaxRequest to detect whether the controller action was invoked using an Ajax request.
As an alternative I’d recommend splitting your views so into smaller pieces, such that your About.aspx view uses the partial view, e.g. by doing Html.RenderPartial( “AboutBox” ). This gives you the power of reuse without having to clutter your actions with if-sentences.