View的呈现
Http为请求响应协议,Server
端针对Client
端请求做出响应。在Asp.net中通过HttpResponse
对象写入服务端响应。
在asp.net mvc中action执行返回ActionResult
对象类型,ActionResult.ExecuteResult()
通过调用HttpReponse
相应客户端,对于Html
页面响应,借助引擎定制Html
。
ActionResult
本节介绍一些基本的类型响应类(这些通过实现ActionResult
类)。同时为了操作方便:Controller
提供了响应的调用方法。
类型 | Controller中调用方法 | 目的 |
---|---|---|
EmptyResult | 无 | 服务端不向客户端输出内容 |
ContentResult | Content() | 向客户端输出纯文本 |
FileContentResult | File() | 文件下载,接受byte[] |
FilePathResult | File() | 文件下载,接受文件path |
FileStreamResult | File() | 文件下载,接受文件流FileStream |
JavascriptResult | JavaScript() | 返回客户端脚本 |
JsonResult | Json() | 返回Json类型文本 |
HttpStatusCodeResult | HttpNotFound()或new HttpUnauthorizedResult() | 路径不存在或没有权限 |
RedirectResult | Redirect() | 跳转http路径 |
RedirectToRouteResult | RedirectToAction() | route路由 |
注意文件下载有两种方式:
- 文件直接在浏览器打开(内敛方式下载)
- 附件形式下载(需要设置http
Content-Disposition:attachment;filename={FileDownName}
),在MVC中设置FileDownloadName
就按附件形式下载。
ViewResult
在大多数情况下,Server端响应的是Html页面,对这种复杂的内容实现方便生成,通过引擎。
Engine的提供
IView
为View页面接口,Render()
方法将html输出到客户端。通过Engine
生成View,
ViewEngines
为ViewEngine
集合生成View遍历所有项ViewEngine
方法FindPartialView()
和FindView()
返回ViewEngineResult
包含IView
IView
通过Render()
生成html响应
注意Controller
中提供View()
方法将数据传递到View。常用的view(object model),model为ViewResult.Model
ViewResult调用引擎
ViewResult
继承自ViewResultBase
。其中ViewResultBase.ViewEngineCollection
为注册的所有Engines
。
其中ViewResult.FindView
通过遍历获得ViewEngineResult
Engine
Asp.net MVC自带两种Engine,WebForm和Razor(提倡使用),第一次访问文件时将.chtml文件动态编译为程序集。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)