0

我必须使用 C# 在页面后面的代码中创建一个包含 url 的 javascript。但是javascript里面的url参数用C#生成后没有正确的格式。

例子:

网址参数: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 中。

4

3 回答 3

2

应该是这样的,

string googleIcon = "<a href=\"javascript:dnnModal.show('" + link + "',false,365,206,false)'\"><img border='0' src='~/Icons/gIcon.png'></a>";
于 2013-03-24T01:08:21.970 回答
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 结果。

于 2013-03-24T01:14:14.100 回答
1

您没有正确转义字符串

string googleIcon = "<a href='javascript:dnnModal.show(\"" + link +"\",false,365,206,false)'><img border='0' src='~/Icons/gIcon.png'></a>";
于 2013-03-24T01:09:31.090 回答