问题真的很简单
让我先解释一下情况,
其中有一个主要的View
和2个PartialView
,类别和产品。类别具有多个子类别和子子类别等。
我想做的是,当我单击任何类别时,它应该更改产品的PartialView
的“数据”,而无需进行任何更改。我可以这样用Ajax做到这一点:
function myFunction(clickedItem) {
//this area for showing or hiding sub-categories and i need this.
var x = document.getElementById(clickedItem);
if (x.style.display == 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
var id = clickedItem;
$.ajax({
type: 'GET',
url: '/Home/PartialProductList/' + id,
success: function (response) {
$('.table').html(response);
}
});
}
到目前为止还不错,但是当我想将PageList
添加到产品的PartialView
中时,它将刷新主View
。我发现Unobtrusive.Ajax
lib。但不知道如何使用。
我的页面列表助手:
@Html.PagedListPager(Model, page => Url.Action("PartialProductList", new { page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "table" })) //last part newly added.
我是新手,所以我不明白这一点。在此代码中,Url.Action
的页面URL应该是主要的View
,但刷新类别的PartialView
也是如此。
Url.Action的网址应该是什么?
还是有其他方法可以做到?(无需刷新类别的PartialView
ofc。)
如果需要,我想共享更多代码(例如Action
等),但是我想了解的是如何一起使用Html.PagedListPager
和Unobtrusive.Ajax
。