ASP.Net4およびMVC3フレームワークを使用してWebアプリケーションを開発しています。NuGetを使用してT4MVCをインストールしましたが、すべてのビュー、コントローラー、および静的コンテンツが強力な型として正常に生成されます。
しかし、プロジェクトをコンパイルしようとすると、生成されたファイルT4MVC.csでエラーが発生します。これは次のとおりです。
'T4MVC_ViewResultBase.FindView(System.Web.Mvc.ControllerContext)':
return type must be 'System.Web.Mvc.ViewEngineResult' to match overridden member
'System.Web.Mvc.ViewResultBase.FindView(System.Web.Mvc.ControllerContext)'
生成されるソースコードは次のとおりです。
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
public class T4MVC_ViewResultBase : System.Web.Mvc.ViewResultBase,
IT4MVCActionResult
{
public T4MVC_ViewResultBase(string area, string controller, string action):
base() {
this.InitMVCT4Result(area, controller, action);
}
protected override void FindView(System.Web.Mvc.ControllerContext context){}
public string Controller { get; set; }
public string Action { get; set; }
public RouteValueDictionary RouteValueDictionary { get; set; }
}
エラーは次のように述べています。
protected override void FindView(System.Web.Mvc.ControllerContext context) { }
する必要があります:
protected override ViewEngineResult
FindView(System.Web.Mvc.ControllerContext context) { }
ただし、このメソッドはコードを返す必要があるため、別のコンパイルエラーが発生します。
継承元の基本クラスであるSystem.Web.Mvc.ViewResultBaseを確認すると、実際には、ViewEngineResultの戻りタイプでFindView ()が宣言されています。
public abstract class ViewResultBase : ActionResult
{
...
protected abstract ViewEngineResult FindView(ControllerContext context);
}
誰かがこのエラーを受け取りましたか?MVCバージョンと関係がありますか?MVC3を使用していますか?
どうもありがとう!セルギ