2013-03-24 112 views
0

我必须创建一个JavaScript,其中包含使用C#在页面后面的代码中的网址。但JavaScript内部的url参数在由C#生成后没有正确的格式。为什么url参数在javascript中没有正确的格式?

实施例:

地址参数:http://google.com

使用Javascript:的javascript:dnnModal.show( 'http://google.com',假,365206,假)

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的格式不正确。有googleIcon的代码,我使用“查看选择源”来查看aspx页面的代码之后:

<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的方式。

回答

2

应该是这样,

string googleIcon = "<a href=\"javascript:dnnModal.show('" + link + "',false,365,206,false)'\"><img border='0' src='~/Icons/gIcon.png'></a>"; 
+0

但是,在aspx页面上生成链接或url后,其格式会丢失。 – 2013-03-24 01:09:34

+0

@TriNguyenDung,你可以试试更新的吗? – ocanal 2013-03-24 01:10:49

+0

我在努力,等一下。 – 2013-03-24 01:13:07

1

你是不是逃避串正确

string googleIcon = "<a href='javascript:dnnModal.show(\"" + link +"\",false,365,206,false)'><img border='0' src='~/Icons/gIcon.png'></a>"; 
+0

这也很好。非常感谢您的帮助。 – 2013-03-24 01:17:54

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

+0

你已经走到了我的想法。这也是非常好的,但我试图添加一个更长的字符串的JavaScript,而这个谷歌图标超链接只是一个更大的字符串内的特定字符串。但是你的回答对我来说很好,可以涵盖我对这个问题的研究。太感谢了。 – 2013-03-24 01:22:16

相关问题