gpt4 book ai didi

c# - Visual Studio 2015 : MVC 6 Scaffolding switched to using IActionResult intead of ActionResult

转载 作者:太空狗 更新时间:2023-10-29 23:30:18 24 4
gpt4 key购买 nike

我刚刚安装了 VS 2015,我注意到 MVC6 的自动脚手架有一些变化。我很好奇微软为什么要做出这些改变,因为我认为如果他们决定做一些改变,可能会有一些我可能不知道的好处。

In VS 2013, the MVC 5 Auto-Scaffolding always used: ActionResult

In VS 2015 the MVC 6 Auto-Scaffolding switched to using: IActionResult

在 VS 2015 中,我注意到 Microsoft 团队不想再这样做了:

 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 Controller 使用 System.Web.MVC.Controller 父类,Web API Controller 使用 System.Web.Http.ApiController 父类。

但在 ASP.NET 5 MVC 6 中,它们将两者合并到一个 Web 应用程序中。所以现在只有 1 个 Controller 类 Microsoft.AspNet.Mvc.Controller 类作为它们两者的基础。现在来区分它们,当用作 MVC Controller 时,IActionResult 可能是一个 View 。当用作 Web API Controller 时,IActionResult 可能是数据 (JSON/XML)。同一 Controller 可能具有返回 View 和数据的操作。

关于c# - Visual Studio 2015 : MVC 6 Scaffolding switched to using IActionResult intead of ActionResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com