Javascript 创建服务器控件。创建问题
我创建了一个新的服务器控件。请参阅下面的代码:Javascript 创建服务器控件。创建问题,javascript,c#,html,asp.net,webforms,Javascript,C#,Html,Asp.net,Webforms,我创建了一个新的服务器控件。请参阅下面的代码: public class Tree : Control { #region Rendering protected override void Render(HtmlTextWriter output) { RenderInputTag(output); } private void RenderInputTag(HtmlTextWr
public class Tree : Control
{
#region Rendering
protected override void Render(HtmlTextWriter output)
{
RenderInputTag(output);
}
private void RenderInputTag(HtmlTextWriter htw)
{
//Javascript
htw.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript");
htw.RenderBeginTag(HtmlTextWriterTag.Script);
htw.Write("<%@ Register Src=\"~/Controls/TreeJavascript.ascx\" TagName=\"Tree\" TagPrefix=\"flt\"%>");
htw.RenderEndTag();
}
#endregion
}
公共类树:控件
{
#区域渲染
受保护的覆盖无效渲染(HtmlTextWriter输出)
{
RenderInputTag(输出);
}
私有void RenderInputTag(HtmlTextWriter htw)
{
//Javascript
AddAttribute(htmltextwriteratAttribute.Type,“text/javascript”);
RenderBeginTag(HtmlTextWriterTag.Script);
htw.写(“”);
htw.renderndtag();
}
#端区
}
但是,当我想使用控制器时,出现以下错误:
Uncaught SyntaxError: Unexpected token <
未捕获的语法错误:意外标记<
如何修复它
这是呈现的HTML:
<script type=text/javascript>
<%@ Register Src=\"~/Controls/TreeJavascript.ascx\" TagName=\"Tree\" TagPrefix=\"flt\"%>
</script>
既然您说输出是这样的:
<script type=text/javascript>
<%@ Register Src=\"~/Controls/TreeJavascript.ascx\" TagName=\"Tree\" TagPrefix=\"flt\"%>
</script>
否则,如果内容只是静态的,请将javascript保存在一个变量中,并将其放在此处。您试图在HTML中呈现服务器端标记,这肯定行不通。在哪一行出现错误?生成的HTML是什么?我在这一行出错。我没有生成的标记“这一行”是什么?共有20行代码…此错误发生在浏览器控制台中,当我要使用服务器控件(htw.Write())时,您应该能够在
TreeJavascript.ascx
或TreeJavascript.ascx.cs
文件中看到名称空间。如果它没有,你可以添加它。@Denis1:你修好了吗?如果是这样,请接受我的回答,如果它对你有用的话。
TreeJavascript t = new TreeJavascript();
t.RenderControl(htw);