我有两个部分视图,一个是多选类别列表,另一个是所选类别的所有产品,也是多选列表。
我想更新所选类别或按钮点击的第二个局部视图。我无法找到这样的例子,所以如果有人知道如何做到这一点就会很棒
答案 0 :(得分:1)
在客户端,您可以使用ajax调用,在第一个局部视图中使用有关所选类别的参数。然后,服务器端的调用将返回使用正确的产品呈现的第二个局部视图,该视图基于已发送的类别参数。
ajax调用示例(使用jQuery):
function GetProducts(categoryID) {
$.ajax({
url: '/Controller/GetProducts',
type: 'POST',
data: JSON.stringify({ categoryID: categoryID }),
dataType: 'html',
contentType: 'application/json',
success: function (data) { OnGetProductsPartialViewCallback(data); },
error: function (jqXHR, textStatus, errorThrown) { OnGetProductsPartialViewError(jqXHR, textStatus, errorThrown); }
});
}
function OnGetProductsPartialViewCallback(data) {
$('#div-products').html(data);
...
}
function OnGetProductsPartialViewError(jqXHR, textStatus, errorThrown) {
...
}
服务器端代码:
[HttpPost]
public PartialViewResult GetProducts(int categoryID)
{
try
{
var products = // get products
return PartialView("Products", new ProductsViewModel(products));
}
catch (Exception ex)
{
throw new Exception("Products could not be loaded.", ex);
}
}
希望这能指出你正确的方向;)