加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC 3项目中使用T4MVC生成的代码编译错误

发布时间:2020-12-16 06:58:29 所属栏目:asp.Net 来源:网络整理
导读:我们正在开发一个使用ASP.Net 4和Web的Web应用程序. MVC 3框架.我已经通过NuGet安装了T4MVC,所有的视图,控制器和静态内容都成功地生成为强类型. 但是,当我尝试编译项目时,它会在生成的文件T4MVC.cs中引发错误,这是: 'T4MVC_ViewResultBase.FindView(System.
我们正在开发一个使用ASP.Net 4和Web的Web应用程序. MVC 3框架.我已经通过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版本有关,我们是否正在使用MVC 3?

非常感谢!
塞尔吉

解决方法

我想我看到了问题,这是一个T4MVC错误.但希望它很容易解决.

您是否有声明返回ViewResultBase的控制器操作?如果是这样,您可以将返回类型更改为ActionResult吗?或者,您可以将返回类型更改为您要返回的具体类型(例如ViewResult)?

T4MVC错误是它没有正确覆盖ActionResult类型中的非void方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读