MVC中如何在controller的action中输出JS到页面上
编辑器加载中...这个问题有点怪,不过这是项目开发时一个同事问我的问题,实现上完成这个需要很容易, 通过HTTP上下文对象(HttpContext)就可以了. 你在action中的HttpContext就是这个action所指向的页面的上下文,所以向页面输出JS,我们可以这样实现
HttpContext.Response.Output.Write("<script>alert('OK,呵呵')</script>");
这个意思是说,将write()里的文本流追加到当前HTTP响应流中。
小知识:在ASPX中输出文本信息我们通常会这样实现
<% Html.RenderPartial("lori");//当前controller下的lori分部视图或者shared目录下的分部视图 %>
<%= "lori.zhang" %>
<% Response.Write("lori.zhang"); //方法 %>
<% %>中包含了.net的语句,本身不是用来表示输出的,那么为什么刚才代码中的Html.RenderPartial方法也会生成页面内容 呢?那是因为RenderPartial方法直接向当前HttpContext.Response.Output里写入字符了。而我们用 Response.Write来输出内容,其实在Response类(HttpResponseBase,可提供来自 ASP.NET 操作的 HTTP 响应信息,它是抽象类)的Write方法内部就是输出到Output中。
即使我们的页面中使用了HtmlTextWriter来输出内容,但它内部也是封装了Output所暴露出的TextWriter中。为了 验证,您可以在代码中设置断点并观察Render方法的writer参数,在“正常情况下”可以发现writer.InnerWriter属性是一个 HttpWriter对象,这是个TextWriter的子类,也是ASP.NET中定义的内部类型。
<%=%>与<%response.write()%>的区别
它们输出到页面的效果是一样的。但是实际上前者是使用页面的HtmlTextWriter对象输出的,而后者则直接向Response.Output里输 出内容。(节选自,老赵点滴)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示