2017-06-13 7 views
0

mvc core 2.0プロジェクトで作業していますが、ビューコンポーネントが動作していません。Mvc Core 2.0ビューコンポーネント

は、私はこのエラーを取得

と、InvalidOperationException:IViewComponentResultに '起動' またはビューコンポーネント

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

     return View(model); 
    } 
} 

答えて

1

変更呼び出しの戻り値の型は 'InvokeAsync' メソッドが見つかりませんでした:

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

     return View(model); 
    } 
} 

と表示されていますlike:@await Component.InvokeAsync(typeof(FooterViewComponent))

私はASP.Net Core 2.0を使用しています。ビューコンポーネントは正常に動作します。

0

私の実装では、ビューコンポーネントのInvokeメソッドはAsyncメソッドでなければならず、タスクとして出力を返す必要があります。これは、それが私のために働いていた方法です:

マイビューコンポーネント:

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

そして、あなたは次のようにアプリケーション内の任意のビューからアクセスすることができます。

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

私は、これは

を役に立てば幸い