c# - 无法识别 ASP.NET Core ViewComponent 的 Invoke() 方法调用

标签 c# visual-studio-2015 asp.net-core

在我使用 VS2015 的 ASP.NET Core RC2 应用程序中,我在 ViewComponent 类中使用了以下 Invoke() 方法,但智能感知无法识别 Invoke() 方法。该应用程序构建成功,但在运行时出现以下错误:

System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Html.IHtmlContent]

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);
        }

从生成上述错误的 View 调用 Invoke() 方法:

<div class="alert alert-success">@Component.Invoke("ProductList", "D")</div>

最佳答案

这是一个老问题,但我想为 ASP.NET Core 的 1.0 RTM 版本提供一个答案。

@await Component.InvokeAsync("ProductList", new { filter = "D" })

Component.Invoke() 已被移除。因此,即使 View 组件中的方法仍定义为 Invoke()(而不是 InvokeAsync()),这也是正确的方法——这可能是好吧,这取决于方法的作用。

作为替代方案,您还可以使用更强类型的版本...

@(await Component.InvokeAsync<ProductList>(new { filter = "D" }))

关于c# - 无法识别 ASP.NET Core ViewComponent 的 Invoke() 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979547/

相关文章:

c# - 将 IList 项添加到特定索引号

visual-studio-2015 - 如何找出 Visual Studio 2015 社区在启动时崩溃的原因

javascript - 在 Visual Studio Web Express 2013 或 Visual Studio 2015 社区中调试 javascript

.net - 创建 .net 类库时出现不受支持的框架错误

c# - 如何在 MS 构建任务中使用 NewtonSoft.json?

c# - 如何打开任何窗口的上下文菜单?

c# - 在 .NET Core Web API 中为 MongoDB 使用 OData

authentication - asp.Net core 2.2中的多种认证方式

c# - 如何让 RichTextBox Undo 更好地工作?

c# - 如果字段包含 null,则整个连接结果为 null