Мы разрабатываем веб-приложение с 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?
Большое спасибо! Серджи