0

C# を使用してコード ビハインド ページに URL を含む JavaScript を作成する必要があります。しかし、javascript 内の url パラメーターは、C# によって生成された後、正しい形式になりません。

例:

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 の形式が正しくありません。「View Select Source」を使用して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(

URL が失われ、通知文字列も失われます。

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

文字列を適切にエスケープしていません

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 に答える
1

他の2つの回答には同意しますが、これらの種類のタスクをユーザーコントロールにカプセル化するようにしてください。しかし、それが不可能な場合は、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 に答える