在 ASP.NET MVC 中将多个参数传递给 ViewComponent
Pass multiple parameters to ViewComponent in ASP.NET MVC
我想使用 C# 将多个参数传递给 ASP.NET MVC 中的视图组件。
所以我这样做了:
public IViewComponentResult Invoke(Ordering ordering, InvokeRequest invokeRequest)
{
var productList = _context.GetProductForSiteService
.Execute(invokeRequest.ordering, invokeRequest.Searchkey, invokeRequest.page, invokeRequest.pageSize, null).Data;
return View(viewName: "GetProducts", productList);
}
public class InvokeRequest
{
public Ordering ordering { get; set; }
public string Searchkey { get; set; }
public int page { get; set; } = 1;
public int pageSize { get; set; } = 20;
}
在视图中,我有:
@await Component.InvokeAsync("GetProducts", new { Ordering=Ordering.NotOrder, Searchkey="", page=1, pageSize=20 })
但是 Invoke
方法中 InvokeRequest
的值始终为空,如何将多个参数传递给 ViewComponent?
您传递的对象的属性与您的 Invoke
方法签名不匹配。
来自 documentation
An Object with properties representing arguments to be passed to the invoked view component method.
要传递的对象需要属性 ordering
和 invokeRequest
。
@await Component.InvokeAsync("GetProducts",
new {
ordering = Ordering.NotOrder,
invokeRequest = new InvokeRequest { ordering = Ordering.NotOrder, Searchkey = "", page = 1, pageSize = 20 }
})
由于 InvokeRequest
还包含一个 ordering
属性,您可能会考虑将其排除在组件 Invoke
方法签名之外。
public IViewComponentResult Invoke(InvokeRequest invokeRequest)
调用看起来会像
@await Component.InvokeAsync("GetProducts",
new InvokeRequest { ordering = Ordering.NotOrder, Searchkey = "", page = 1, pageSize = 20 }
)
我想使用 C# 将多个参数传递给 ASP.NET MVC 中的视图组件。
所以我这样做了:
public IViewComponentResult Invoke(Ordering ordering, InvokeRequest invokeRequest)
{
var productList = _context.GetProductForSiteService
.Execute(invokeRequest.ordering, invokeRequest.Searchkey, invokeRequest.page, invokeRequest.pageSize, null).Data;
return View(viewName: "GetProducts", productList);
}
public class InvokeRequest
{
public Ordering ordering { get; set; }
public string Searchkey { get; set; }
public int page { get; set; } = 1;
public int pageSize { get; set; } = 20;
}
在视图中,我有:
@await Component.InvokeAsync("GetProducts", new { Ordering=Ordering.NotOrder, Searchkey="", page=1, pageSize=20 })
但是 Invoke
方法中 InvokeRequest
的值始终为空,如何将多个参数传递给 ViewComponent?
您传递的对象的属性与您的 Invoke
方法签名不匹配。
来自 documentation
An Object with properties representing arguments to be passed to the invoked view component method.
要传递的对象需要属性 ordering
和 invokeRequest
。
@await Component.InvokeAsync("GetProducts",
new {
ordering = Ordering.NotOrder,
invokeRequest = new InvokeRequest { ordering = Ordering.NotOrder, Searchkey = "", page = 1, pageSize = 20 }
})
由于 InvokeRequest
还包含一个 ordering
属性,您可能会考虑将其排除在组件 Invoke
方法签名之外。
public IViewComponentResult Invoke(InvokeRequest invokeRequest)
调用看起来会像
@await Component.InvokeAsync("GetProducts",
new InvokeRequest { ordering = Ordering.NotOrder, Searchkey = "", page = 1, pageSize = 20 }
)