如何利用asp.net输出js

利用asp.net输出js我们大多数都会直接使用Respone.Write()然后根js格式的代码,再在页面调用时我们直接这样是完全可以实现的,下面我来给大家介绍另一种方法

我是我最初的想法以下是代码片段:

Respone.Write(“hello word!”);

但是,当你查看客户端源码时,你会发现,输出的内容呈现在源码的最前端,显然它破坏了HTML的格式,在某些情况下这是会影响到页面布局等效果的。正确的输出方式应该是:

this.ClientScript.RegisterStartupScript

this.ClientScript.RegisterClientScriptBlock.

this.ClientScript.RegisterStartupScript是在Form开始的第一行注册脚本,后者则是在Form结尾处注册脚本。这样就不会破坏HTML得格式了,如:

this.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "")

this.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "alert('hello word!');",True)

this.ClientScript.RegisterClientScriptBlock也类似UpdatePanel

当你想在UpdatePanel内输出一段JS时,运用以上方法就会得不到预期的效果。那么请看一下示例。

有一个UpdatePanel的ID是upPn

ScriptManager.RegisterClientScriptBlock(upPn,this.GetType(), "scriptKey", "alert('hello word!');",True)

ScriptManager.RegisterStartupScript(upPn,this.GetType(), "scriptKey", "alert('hello word!');",True)

这样的话,当UpdatePanel内容加载到客户端后,就会弹出“hello word!”对话框。

这样的话,从后台输出JS就更加方便了

还有一种办法,就是像生成xml一样直接生成js文件了,这样直接调用js文件,就可以了,实例

protected override void Render(HtmlTextWriter writer)
{
    int titleid =0;
    StringWriter html = new StringWriter();
    System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
    base.Render(tw);
    StreamWriter sw;

    string dir = Server.MapPath("~/js/ask/");

    if (!Directory.Exists(dir))
    {
        Directory.CreateDirectory(dir);
    }

    string path = dir + "ask"+"_" + titleid + ".js";

    sw = new StreamWriter(path, false, System.Text.Encoding.UTF8);

    string newhtml = html.ToString().Replace(""", "").Replace("rn", "");
    string lasthtml = "document.write("" + newhtml + "")";

    sw.Write(lasthtml.ToString());
    sw.Close();
    tw.Close();
}

JS文件调用乱码解决方法

1、 问题:后台字体倒显示?效果如下:

原因:由于Asp.net采用UTF-8编码,原先使用GB2312导致乱码。

解决方法:在Web.config中添加 以下代码段

<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" uiCulture="zh-CN" culture="zh-CN" fileEncoding="utf-8" />
</system.web>

在解决完后台乱码问题,接着出现前台乱码问题,详情问题2

2、 问题:在添加完以上节点后,系统前台页面出现以下乱码问题:

原因:由于添加了 fileEncoding="utf-8"该项目,造成导航无法显示

解决方法:删除该选项

3、 问题:由系统后台生成的JS文件,在前台的*.aspx的页面中调用时乱码,效果如下:

原因:JS采用的是GB2312编码,而*.aspx采用的UTF-8编码方式,解决思路,统一编码方式

解决方法:第一步:根据问题1解决方法操作,注:不要加 fileEncoding="utf-8"

第二步:在需要调用到JS的aspx页中加入 <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />

第三步:在页面加载事件中加入下句

protected void Page_Load(object sender, EventArgs e)
{
   Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
}

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/aspx/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 乱码
, 方法
, this
, 前端乱码
, 输出
, 后台注册js
, RegisterStartupScript
js输出方式
,以便于您获取更多的相关知识。

时间: 2024-09-13 00:19:35

如何利用asp.net输出js的相关文章

利用ASP嵌套JS+SQL Server打造两级连动下拉框(一)

js|server|下拉 利用ASP嵌套JS+SQL Server打造两级连动下拉框(1)   随着网络技术的迅速发展,越来越多的电子商务网站也应运而生.而在构建一个功能强大的电子商务网站往往少不了提供网上注册功能给客户自行注册这个模块,为了尽可能方便客户填写信息,我们经常要用到下拉框供客户选择,特别是两级连动下拉框最为常用. 再说,本人今日发现CSDN论坛上也经常有网友提问这个问题,就是,需要一个两级连动下拉框,第一个显示省份名称,第二个显示相应的城市名.为了解答这个问题,我特别写这篇文章,希

利用ASP嵌套JS+SQL Server打造两级连动下拉框(二)

js|server|下拉 利用ASP嵌套JS+SQL Server打造两级连动下拉框(2) TwoLevel.asp<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><meta name="GENERATOR" content="Microsoft FrontPage 4.0"

asp.net后台如何输出js脚本使用什么方法可以实现

 asp.net后台如何输出js脚本,用page.ClientScript.RegisterStartupScript方式实现,实现示例如下,感兴趣的朋友不要错过 用page.ClientScript.RegisterStartupScript方式实现    代码为:  代码如下: /**//// <summary>  /// 弹出JavaScript小窗口  /// </summary>  /// <param name="js">窗口信息<

ASP.NET MVC 后台怎么输出JS?

问题描述 ASP.NET MVC 后台怎么输出JS? 如图 最后变成了乱码 解决方案 用@Html.Raw()输出html代码. 解决方案二: 使用Microsoft.JScript.GlobalObject.escape()这个方法转换下啊,前台页面使用JavaScript unescape()解码应该就不会乱码了

利用ASP.NET MVC+Bootstrap搭建个人博客之praise.js点赞特效插件(二)_实用技巧

在上篇文章给大家介绍了利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一).接下来给大家介绍如果做个点赞插件,一起通过本文学习吧! 1. 为啥要做这个点赞插件?    praise.js是一款小巧的jQuery点赞插件,使用简便,效果美观. 在做个人博客时遇到了文章点赞问题.联想到各大社交网络中的点赞特效:手势放大.红心放大等等,很酷很炫.但是并没有现成的好用的插件,于是就打算自己做一个类似的点赞插件,放上自己喜欢的点赞图标.PS:小站的图标均来自阿里妈妈旗下的那个ico

asp.NET后台输出js脚本代码

我是我最初的想法以下是代码片段:  代码如下 复制代码 Respone.Write("hello word!");  或输出JS  Respone.Write(""); 但是,当你查看客户端源码时,你会发现,输出的内容呈现在源码的最前端,显然它破坏了HTML的格式,在某些情况下这是会影响到页面布局等效果的. 正确的输出方式应该是:  代码如下 复制代码 this.ClientScript.RegisterStartupScript或this.ClientScript

ASP.NET中常用输出JS脚本的类实例_实用技巧

本文实例讲述了ASP.NET中常用输出JS脚本的类,针对过去输出js脚本的类进行了一定的改进.在项目开发中非常具有实用价值.分享给大家供大家参考.具体如下: 很多时候在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></h

利用ASP输出excel文件实例讲解_应用技巧

在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有用的,应为excel不是关系型的数据库.对于一个固定格式,这个格式里有复杂的单元格合并,边框线条样式,还有图案,单元格之间还有公式关系等等的,我想最容易理解的就是在后台打开一个已有设定好模板的文件,然后在需要的地方插入数据,保存,输出... ... 这里提到的这种方法是直接建立一个excel对象,在后台可以更方便的对excel文档进行各种操作. 服务器端还必

利用ASP输出excel文件实例讲解

在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这个方法不是总能有用的,应为excel不是关系型的数据库.对于一个固定格式,这个格式里有复杂的单元格合并,边框线条样式,还有图案,单元格之间还有公式关系等等的,我想最容易理解的就是在后台打开一个已有设定好模板的文件,然后在需要的地方插入数据,保存,输出... ... 这里提到的这种方法是直接建立一个excel对象,在后台可以更方便的对excel文档进行各种操作. 服务器端还必