2017-06-13 81 views
0

我正在使用mvc核心2.0項目,但查看組件不工作。Mvc Core 2.0查看組件

我得到這個錯誤

InvalidOperationException異常:找不到一個 '調用' 或 'InvokeAsync' 法視分量

[ViewComponent(Name = "Footer")] 
public class FooterViewComponent : ViewComponent 
{ 
    public ViewViewComponentResult Invoke() 
    {  
     var model = new FooterModel(); 

     return View(model); 
    } 
} 

回答

1

更改調用的返回類型IViewComponentResult

[ViewComponent(Name = "Footer")] 
public class FooterViewComponent : ViewComponent 
{ 
    public IViewComponentResult Invoke() 
    { 
     var model = new FooterModel(); 

     return View(model); 
    } 
} 

並在視圖中使用它像:@await Component.InvokeAsync(typeof(FooterViewComponent))

我使用ASP.Net核心2.0和視圖組件工作正常。

0

在我的實現中,視圖組件的Invoke方法必須是一個Async方法,並且應該返回一個Task作爲輸出。這是如何工作對我來說:

我的視圖組件:

public class XTestEntityViewComponent : ViewComponent 
{ 
    public async Task<IViewComponentResult> InvokeAsync(int id) 
    { 
     // Put your stuff here . . . 
    } 
} 

而且你可以從任何觀點在應用程序中訪問如下:

@await Component.InvokeAsync("XTestEntity", new { id = 4 }) 

我希望這有助於