第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

哪個(gè)類(lèi)負(fù)責(zé)生成響應(yīng)?

哪個(gè)類(lèi)負(fù)責(zé)生成響應(yīng)?

C#
繁花不似錦 2023-08-13 15:46:28
我是 Razor 引擎的新手,只是有一個(gè)關(guān)于在 ASP.NET MVC 中生成響應(yīng)的問(wèn)題首先我們知道視圖引擎的作用就是將對(duì)視圖的請(qǐng)求轉(zhuǎn)化為ViewEngineResult對(duì)象,而Razor視圖引擎實(shí)現(xiàn)了IViewEnginepublic interface IViewEngine{   ViewEngineResult FindView(ActionContext context, string viewName, bool isMainPage);   ViewEngineResult GetView(string executingFilePath, string viewPath, bool isMainPage);}在FindVieworGetView方法中,Razor 引擎返回一個(gè)ViewEngineResult對(duì)象:// pseudo code for simplificationif view_found    return ViewEngineResult.Found(viewName, new RazorView(...));實(shí)現(xiàn)為RazorView:IViewpublic class RazorView : IView{   public string Path { get; }   public virtual Task RenderAsync(ViewContext context);}函數(shù)RenderAsync似乎是產(chǎn)生響應(yīng)的人。但是 .cshtml 文件也會(huì)被 Razor 引擎編譯成 C# 類(lèi),下面是生成 index.cshtml 的 C# 代碼的示例:public class ASPV_Views_Home_Index_cshtml : RazorPage<string[]> {   ...   public override async Task ExecuteAsync() {      ...//this method also seems to generate response   }}所以ExecuteAsync似乎也產(chǎn)生了反應(yīng)最后,如果我們查看ViewResult操作方法返回的對(duì)象,則ViewResult實(shí)現(xiàn)ActionResult(implements IActionResult) 為public class ViewResult : ActionResult{  ...  public override Task ExecuteResultAsync(ActionContext context); }ExecuteResultAsync似乎也產(chǎn)生了反應(yīng)。所以我們有三個(gè)候選人1-RazorView.RenderAsync()2-RazorPage.ExecuteAsync()3-ViewResult.ExecuteResultAsync()哪一個(gè)是真正產(chǎn)生響應(yīng)的?
查看完整描述

1 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

ExecuteResultAsync根據(jù)結(jié)果的類(lèi)型(ViewResult、PageResult、ContentResult、JsonResult等)進(jìn)行不同的處理。對(duì)于ViewResult,其主要職責(zé)是設(shè)置HttpResponse對(duì)象屬性(StatusCode、ContentTypeBody等)。

內(nèi)部ExecuteResultAsync調(diào)用RenderAsync負(fù)責(zé)渲染視圖及其布局。

再次,內(nèi)部RenderAsync調(diào)用ExecuteAsync.?ExecuteAsyncrazor 語(yǔ)法的實(shí)際渲染是什么。

您可以下載 .NET Core 存儲(chǔ)庫(kù)AspNetCore并檢查所有內(nèi)容如何在命名空間下連接的詳細(xì)信息Microsoft.AspNetCore.Mvc。


查看完整回答
反對(duì) 回復(fù) 2023-08-13
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)