我必须创建一个javascript,其中包含使用C#在页面后面的代码中的URL。但是,在使用C#生成之后,javascript中的url参数格式不正确。
示例:
Url参数: http://google.com
Javascript: javascript:dnnModal.show('http://google.com',false,365,206,false)
C#代码:
string link = "http://google.com?popUp=true";
string googleIcon = "<a href='javascript:dnnModal.show('" + link +',false,365,206,false)'><img border='0' src='~/Icons/gIcon.png'></a>";
从页面后面的代码生成后,查看url格式不正确。在我使用“查看选择源”查看aspx页面的代码后,有googleIcon的代码:
<a href="javascript:dnnModal.show(" http:="" google.com?popup="true',false,365,206,false)'"><img src="~/Icons/gIcon.png" border="0"></a>
图标上的超链接只是在我将鼠标移到它上面时显示:
javascript:dnnModal.show(
网址丢失,提醒字符串也丢失了。
我需要一些关于我的问题的帮助来展示如何使用C#将url参数传递到javascript中。
答案 0 :(得分:2)
应该是这样的,
string googleIcon = "<a href=\"javascript:dnnModal.show('" + link + "',false,365,206,false)'\"><img border='0' src='~/Icons/gIcon.png'></a>";
答案 1 :(得分:1)
你没有正确地逃避字符串
string googleIcon = "<a href='javascript:dnnModal.show(\"" + link +"\",false,365,206,false)'><img border='0' src='~/Icons/gIcon.png'></a>";
答案 2 :(得分:1)
我同意另外两个答案,但您应该尝试将这些任务封装在用户控件中。但如果不可能,我建议改用System.Web.UI.HtmlControls
,因为它会给你更大的灵活性
像这样:
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = @"javascript:dnnModal.show(\"" + link +"\",false,365,206,false)";
HtmlImage myImage = new HtmlImage();
myImage.Src = "~/Icons/gIcon.png";
myImage.Border = 0;
myHtmlLink.Controls.Add(myImage);
我更喜欢这种方法,因为Asp.net负责创建DOM,这意味着您将是安全的,并且您可以保证获得有效的XHTML结果。