nam*_*nam 3 c# visual-studio-2015 asp.net-core
在我使用 VS2015 的 ASP.NET Core RC2 应用程序中,我在 ViewComponent 类中有以下 Invoke() 方法,但智能感知无法识别 Invoke() 方法。该应用程序构建成功,但在运行时出现以下错误:
System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Html.IHtmlContent]
Run Code Online (Sandbox Code Playgroud)
ViewComponent 类中的 Invoke() 方法:
public IViewComponentResult Invoke(string filter)
{
var res = (from p in ctx.Product.ToList()
where p.ProductName.StartsWith(filter)
select p).ToList();
return View(res);
}
Run Code Online (Sandbox Code Playgroud)
从生成上述错误的视图调用 Invoke() 方法:
<div class="alert alert-success">@Component.Invoke("ProductList", "D")</div>
Run Code Online (Sandbox Code Playgroud)
小智 8
这是一个老问题,但我想为 ASP.NET Core 的 1.0 RTM 版本提供答案。
@await Component.InvokeAsync("ProductList", new { filter = "D" })
Run Code Online (Sandbox Code Playgroud)
Component.Invoke()已被删除。因此,即使视图组件中的方法仍然定义为Invoke()(而不是InvokeAsync()) ,这也是正确的方法——这取决于方法的作用。
作为替代方案,您还可以使用更强类型的版本...
@(await Component.InvokeAsync<ProductList>(new { filter = "D" }))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4678 次 |
| 最近记录: |