• Asp.Net中Response.Write()导致页面CSS无效的解决办法——ClientScript.RegisterStartupScript


    大家可能会遇到使用Response.Write()导致页面CSS无效的情况,现在该问题微软推荐了新的解决办法——ClientScript.RegisterStartupScript方法。

    CSS无效的原因:

    由于Response.Write()是输出到页面的最顶端,导致了页面不符合DTD规范:
    <!– DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd” –>

    所以,浏览器会出现无法识别CSS的问题。

    问题解决方法:

    ClientScript.RegisterStartupScript(this.GetType(),"deleteSuccess","<script>alert('恭喜,删除成功!')</script>");

    第一个参数是获取当前页面的类型:this.GetType()

    第二个参数是Script的名字,随便取,用来区分不同的脚本块,相同key值的脚本块会放置同一个脚本标签内部。
    第三个参数是Script的内容,可以包含脚本标签,也可以不包含。

    重载方法还有第四个参数:bool addScriptTags。默认值为false,即默认情况下不会再脚本外部添加<script type="text/javascript>...</script>脚本标签的。 如果想要添加该脚本标签,则设为true。

    下面截图为证:

    后台执行下面的代码:

    ClientScript.RegisterStartupScript(this.GetType(), "selectedNone", "alert('您还没有选择任何评论选项,无法继续删除!或许这是个非法请求!')");

    1、第四个参数 addScriptTags 为空或者false

    此时页面会出现脚本错误的提示。

    2、第四个参数 addScriptTags 为true

    结论:

    ClientScript.RegisterStartupScript方法的第四个参数 addScriptTags 默认值应该为false;

    RegisterStartupScript方法的作用就是将第二个参数中的脚本(可以有脚本标签也可以没有脚本标签)放置到页面form表单最后的位置(</form>标记前面);

    如果第三个参数中不存在脚本标签,最后一个参数addScriptTags一定要设为true否则会出现脚本错误。

  • 相关阅读:
    asy for
    asy html !
    lib
    git clone 指定 version tag
    git tag
    git clone <url>--depth 、 git clone <url> --recursive
    xelatex CLI
    rsync
    curl options
    [转自]C语言offset_of宏和container_of宏
  • 原文地址:https://www.cnblogs.com/wadeheng/p/1904587.html
Copyright © 2020-2023  润新知