快速业务通道

让ASP.Net HTML页面代码清爽起来

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-10


自从用了 ASP.Net MVC后就喜欢上了它 ,因为MVC对服务器控件的依赖大大减少,它生成的HTML页面就比WebForm清爽多了,加载速度有了明显的改善。

  但对于页面中内嵌script,还是不能彻底的避免,如:

  〈mce:script type=“text/javascript“ language=“javascript“〉〈!--
  function DepositPage() {
    // 这是一个第3方的WebControl,由于是服务器控件,受MasterPage影响,它的客户端ID并不是确定的。
    this.ctrlRadGrid = “#〈%= ctrlRadGrid.ClientID %〉“;

    // 这是一段又臭又长的JSON,从Modal中传递过来
    this.accounts = 〈%= Modal.JSON %〉;
    // .............................
  }
  new DepositPage();
  // --〉〈/mce:script〉
  〈mce:script type=“text/javascript“ language=“javascript“〉〈!--
  function DepositPage() {
   // 这是一个第3方的WebControl,由于是服务器控件,受MasterPage影响,它的客户端ID并不是确定的。
    this.ctrlRadGrid = “#〈%= ctrlRadGrid.ClientID %〉“;

   // 这是一段又臭又长的JSON,从Modal中传递过来
    this.accounts = 〈%= Modal.JSON %〉;
   // .............................
  }
  new DepositPage();
  // --〉〈/mce:script〉

  是否有一种方法可以将这段JS不内嵌在HTML中,使用〈script src=““〉标记从外部文件加载?

  答案是肯定的,通过自定义WebControl完全可以实现,有如下WebControl

    [ParseChildren(false)]
    public class JavascriptControl : WebControl
    {
      private static long s_Count = 0L;
      protected override void Render(HtmlTextWriter writer)
      {
        if( !Visible )
          return;
        using (StringWriter sw = new StringWriter())
        {
          using (HtmlTextWriter htw = new HtmlTextWriter(sw))
          {
            base.Render(htw);
            // get the rendered content
            string rendered = sw.ToString();
            // remove the script tag is exist
            if (rendered.Trim().StartsWith(“〈mce:script “, StringComparison.InvariantCultureIgnoreCase))
            {
              int index = rendered.IndexOf(’〉〈!--’) + 1;
       

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号