我想使用 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 })
但是InvokeRequestinInvoke方法的值始終為 null,如何將多個引數傳遞給 ViewComponent?
uj5u.com熱心網友回復:
Invoke您傳遞的物件的屬性與您的方法簽名不匹配。
從檔案
一個物件,其屬性表示要傳遞給呼叫的視圖組件方法的引數。
要傳遞的物件需要屬性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 }
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/459882.html
標籤:C# asp.net-mvc
下一篇:以MVC形式格式化來自模型的文本
