为什么url参数在javascript中没有正确的格式?

时间:2013-03-24 01:05:21

标签: c# javascript asp.net

我必须创建一个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中。

3 个答案:

答案 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结果。