Visual Studio 2015: MVC 6脚手架切换到使用IActionResult代替ActionResult
本文关键字:IActionResult ActionResult 代替 2015 Studio MVC 脚手架 Visual | 更新日期: 2023-09-27 18:05:44
我刚刚安装了VS 2015,我注意到MVC6的自动脚手架发生了一些变化。我很好奇微软为什么要做这些改变,因为我想如果他们决定做一些,可能会有一些我不知道的好处。
在VS 2013中,MVC 5 Auto-Scaffolding总是使用:ActionResult
在VS 2015中MVC 6自动脚手架切换到使用:IActionResult
在VS 2015中,我注意到微软团队不喜欢再这样做了:
public class Test{
private int i;
public Test (int i){
this.i = i;
}
}
而在所有生成的类中,我看到它们都是这样的:
public class Test{
private int _i;
public Test (int i){
_i = i;
}
}
如果这只是编码风格的问题,那很好,我会立即失去知道他们为什么改变这个的兴趣,但如果这背后有任何合乎逻辑的解释,我迫不及待地想知道那是什么。
就你的ActionResult问题而言,在以前的ASP。. NET中,MVC控制器使用System.Web.MVC.Controller父类,Web API控制器使用System.Web.Http.ApiController父类。
但是在ASP。. NET 5 . MVC 6,他们已经合并在一个单一的web应用程序。所以现在只有一个控制器类microsoft . asp.net . MVC . controller类作为他们两个的基础。为了区分它们,当作为MVC控制器使用时,IActionResult可能是一个视图。当用作Web API控制器时,IActionResult可能是数据(JSON/XML)。同一个控制器可以有同时返回视图和数据的操作