У меня есть несколько вкладок/списков:Освежающий только часть страницы
<div id="tabs">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Recs", "Recs", "Home")</li>
<li>@Html.ActionLink("Software", "Software", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</div>
На этих списках, у меня есть некоторые эффекты слайд-JQuery, поэтому DIV скользит в, когда пользователь входит на сайт. Но они также скользят каждый раз, когда страница перезагружается, например, когда пользователь нажимает на одну из вкладок. Это может вызвать раздражение в долгосрочной перспективе, это просто здорово, когда вы входите на сайт. Поэтому я хочу сделать так, чтобы определенная область страницы была перезагружена (а не списки). Я узнал, что могу использовать AJAX load (...) для этого, и что я должен использовать Partial View. Поэтому у меня есть частичный вид, что выглядит следующим образом:
@model WebApplication1.Models.PageRefreshModel
<div id="retrievedContentDiv">
<h2>Some content</h2>
</div>
И файл JS:
$(document).ready(function() {
$("#topMenuContentDiv li").click(function() {
$("#retrievedContentDiv").load("/PageRefresh/RefreshPage", { type: 'POST' });
});
});
И часть _Layout.cshtml, что делает Частичное представление содержит это:
@RenderBody()
<div>
@{Html.RenderPartial("_RefreshedHandler");}
</div>
где _RefreshedHandler - это частичный вид. Пока контроллер для частичного вида выглядит следующим образом:
public ActionResult RefreshPage()
{
return PartialView("_RefreshedHandler");
}
Я полностью потерял в куда идти отсюда. В конечном итоге частичное представление вернет содержимое, принадлежащее выбранной вкладке/представлению. Но сейчас проблема заключается в том, как я могу сделать это так, чтобы раздел tab/list не перезагружался одним кликом.
Решение с AJAX - это то, что я смог найти с помощью долгого времени в Интернете. Если кто-то знает лучшее решение, или если у asp.net mvc есть собственный встроенный способ справиться с этим, пожалуйста, поделитесь. Кроме того, вы можете рекомендовать лучшие решения или указывают на проблемы с моим решением до сих пор