日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程

發布時間:2024/9/5 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ASP.NET Core 動作結果 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程

原文:ASP.NET Core 動作結果 - ASP.NET Core 基礎教程 - 簡單教程,簡單編程

ASP.NET Core 動作結果

前面的章節中,我們一直使用簡單的 C# 類作為控制器。 雖然這些類不是從基類派生的,但仍然可以在 MVC 中使用這種方法。 當然了,對于控制器,但更常見的做法是從 Microsoft.AspNetCore.Mvc 命名空間中提供的控制器基類中派生控制器。本章中,我們將嘗試這么做,并且學習動作結果 ( Action Results )。

動作結果 ( Action Result )

Microsoft.AspNetCore.Mvc 命名空間下的基類 Controller 讓我們能夠訪問很多關于 HTTP 請求的上下文信息,以及提供了一些方法幫助我??們構建返回給回客戶端的結果

返回的響應的結果中,我們可以發送簡單的字符串或者整數,或者發送像對象這樣的復雜數據來表示學生或大學或餐館等信息,以及與該對象關聯的所有數據

這些結果通常被封裝到實現 IActionResult 接口的對象中,有大量的不同類型的結果實現了該接口,這些結果類型可以包含模型或文件的內容以供下載

這些不同的結果類型即可以返回 JSON,也可以返回 XML,或者 HTML 視圖

動作基本上可以返回任意不同類型的動作結果。它們都有一個共同的基類:ActionResult

下表列出了不同種類的動作結果及其行為

動作名稱( 類 )行為
ContentResult返回一串字符串
FileContentResult返回文件的內容
FilePathResult返回路徑文件的內容
FileStreamResult返回流文件的內容
EmptyResult返回空
JavaScriptResult返回一段 JavaScript 代碼
JsonResult返回 JSON 格式的數據
RedirectToResult重定向到某個 URL
HttpUnauthorizedResult返回 403 未授權狀態碼
RedirectToRouteResult重定向到不同的控制器或方法
ViewResult從視圖引擎中返回一個響應
PartialViewResult從視圖引擎中返回一個響應

范例: ContentResult

現在,我們修改 HomeController.cs ,引入命名空間 Microsoft.AspNetCore.Mvc,并修改 HomeController 繼承自 Controller。

下面代碼是 HomeController 類的完整實現

using System; using Microsoft.AspNetCore.Mvc; namespace HelloWorld.Controllers { public class HomeController: Controller { public ContentResult Index() { return Content("你好,世界! 這條消息來自使用了 Action Result 的 Home 控制器"); } } }

我們可以看到,Index() 方法返回了一個 ContentResult 類型的結果。ContentResult 是實現了 ActionResult 接口的不同結果類型之一

在 Index() 方法中,我們將一個字符串傳遞給 Content()。 Content() 方法會產生一個 ContentResult,也就是說,Index() 方法會返回 ContentResult

保存 HomeController.cs 文件,重啟應用程序,然后訪問跟目錄 /,我們將會得到以下輸出

我們可以看到,這個響應和之前我們看到的響應幾乎沒有任何區別,它仍然只是一個純文本的響應

你可能很想知道使用 ActionResult 來生成東西有什么優勢

在 Mvc 模式中,控制器決定接下來要做什么,返回一個字符串或 HTML 或返回可能被序列化為 JSON 等的模型對象

Mvc 中的控制器需要做的就是做出決定,但控制器不必直接在響應中寫入決策結果。 它只需要返回結果,然后框架會使用這些結果并理解如何將結果轉換為可通過 HTTP 發回的內容

范例:ObjectResult

如果你不能理解上面這些內容,沒關系,我們再來看一個范例,這次我們使用 ObjectResult

在解決方案管理器中的 HelloWorld 上點擊右鍵,創建一個新文件夾并將其命名為 Models。 在 Models 文件夾中,添加一個用于表示雇員的 Employee 類

創建完成后,目錄結構如下

Employee.cs 中的內容如下

using System; namespace HelloWorld.Models { public class Employee { public Employee() { } } }

修改剛剛創建的 Employee 類,添加兩個屬性,一個整型的 ID 和 一個字符串類型的 Name,修改完成后 Employee.cs 中的內容如下

using System; namespace HelloWorld.Models { public class Employee { public Employee() { } public int ID { get; set; } public string Name { get; set; } } }

然后我們回到 HomeController 控制器,修改 Index() 方法,返回一個 Employee 對象。

修改完成后的 HomeController.cs 內容如下

using System; using Microsoft.AspNetCore.Mvc; using HelloWorld.Models; namespace HelloWorld.Controllers { public class HomeController: Controller { public ObjectResult Index() { var employee = new Employee { ID = 1, Name = "語飛"}; return new ObjectResult(employee); } } }

現在,返回的不是 Content,而是返回一個不同類型的結果 ObjectResult。 如果我們想要一個 ObjectResult,我們需要創建或實例化一個 ObjectResult 并將一些模型對象作為參數傳遞給它

在 MVC 框架中,ObjectResult 是特殊的,因為當我們返回一個 ObjectResult 時,MVC 框架將訪問這個對象。并將這個對象做一些轉換,然后作為 HTTP 響應返回給客戶端

在轉換 ObjectResult 對象時,它可能被序列化為 XML 或 JSON 或其它格式, 至于什么格式,由應用程序啟動時向 MVC 提供的配置信息決定。如果我們沒有顯式的配置任何東西,那么將會使用 JSON 作為默認格式

保存所有的文件,重啟應用程序,然后訪問首頁,我們將得到如下結果

posted on 2018-09-29 16:07 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/9724233.html

總結

以上是生活随笔為你收集整理的ASP.NET Core 动作结果 - ASP.NET Core 基础教程 - 简单教程,简单编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。