Ошибка компиляции с кодом, сгенерированным T4MVC, в проекте MVC 3

Мы разрабатываем веб-приложение с ASP.Net 4 и MVC 3 Framework. Я' Я установил T4MVC через NuGet, и все представления, контроллеры и статический контент успешно сгенерированы как сильные типы.

Но когда я пытаюсь скомпилировать проект, возникает ошибка в сгенерированном файле 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 , он фактически объявляет FindView () с типом возврата ViewEngineResult :

public abstract class ViewResultBase : ActionResult
    {
        ...
        protected abstract ViewEngineResult FindView(ControllerContext context);
    }

У кого-нибудь была эта ошибка? Это как-то связано с версией MVC, мы используем MVC 3?

Большое спасибо! когда я пытаюсь скомпилировать проект, возникает ошибка в сгенерированном файле 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 , он фактически объявляет FindView () с типом возврата ViewEngineResult :

public abstract class ViewResultBase : ActionResult
    {
        ...
        protected abstract ViewEngineResult FindView(ControllerContext context);
    }

У кого-нибудь возникала эта ошибка? Это как-то связано с версией MVC, мы используем MVC 3?

Большое спасибо! когда я пытаюсь скомпилировать проект, возникает ошибка в сгенерированном файле 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 , он фактически объявит FindView () с типом возврата ViewEngineResult :

public abstract class ViewResultBase : ActionResult
    {
        ...
        protected abstract ViewEngineResult FindView(ControllerContext context);
    }

У кого-нибудь возникала эта ошибка? Это как-то связано с версией MVC, мы используем MVC 3?

Большое спасибо!

Если мы проверим базовый класс, от которого он наследуется, System.Web.Mvc.ViewResultBase , он фактически объявляет FindView () с типом возврата ViewEngineResult :

public abstract class ViewResultBase : ActionResult
    {
        ...
        protected abstract ViewEngineResult FindView(ControllerContext context);
    }

У кого-нибудь была такая ошибка? Это как-то связано с версией MVC, мы используем MVC 3?

Большое спасибо!

Если мы проверим базовый класс, от которого он наследуется, System.Web.Mvc.ViewResultBase , он фактически объявляет FindView () с типом возврата ViewEngineResult :

public abstract class ViewResultBase : ActionResult
    {
        ...
        protected abstract ViewEngineResult FindView(ControllerContext context);
    }

У кого-нибудь была такая ошибка? Это как-то связано с версией MVC, мы используем MVC 3?

Большое спасибо! Серджи

5
задан gideon 6 April 2011 в 19:38
поделиться