ScriptManager.RegisterStartupScript()和ScriptManager.RegisterClientScriptBlock()之间有什么区别,因为两者都做同样的事情?

4 asp.net

嗨,我只是想知道为什么有人建议使用RegisterStartupScript()来调用客户端js,而有些人建议使用RegisterClientScriptBlock().

请告诉我两者之间的差异,因为他们做同样的操作,使用js语句调用,如果我只使用像alert这样的js语句,从代码隐藏返回确认,那么哪一个更好.

Tim*_*ter 15

RegisterClientScriptBlock方法将客户端脚本插入到Page对象<form runat="server">元素的开始标记的正下方.代码无法访问任何表单元素,因为那时元素尚未实例化.

RegisterStartupScript方法在Page对象<form runat="server">元素的结束标记之前插入指定的客户端脚本.代码可以访问任何表单元素,因为那时元素已经被实例化.选择使用哪种方法实际上取决于您在渲染页面时希望浏览器运行脚本的"顺序".

通常,RegisterClientScriptBlock如果要注册js函数,可以使用,RegisterStartupScript如果要调用这些函数或想要访问页面上的控件,则使用.

有关更多信息,请查看MSDN.