从JavaScript中的文本URL返回可点击的URL

时间:2012-07-23 16:27:50

标签: c# javascript

我正在开发一个级联下拉列表。选择最后一项时,它会根据以前的所有选项从.cs列表中提取信息。这很好用。但是,我希望显示的结果包含可点击的链接以及其他信息。现在我正在使用document.write打开一个带有链接的新窗口。这不太理想。

    function formatHyper(hyper) {
    var NewWindow = window.open('', 'name', 'height=660,width=650,status=1');
    var str = "Parts";

    NewWindow.document.write(str.link(hyper));

}

Hyper是文本链接。从外部.cs文件调用,如下所示:

public class PhonePrice
{
private static List<Phone> Phones = new List<Phone>{
    new Phone{Make="Apple",Model="iPhone    4",Carrier="ATT",Colour="black",Price=00.00f,Hyper="http://www.google.com"},

当我完成最后一个下拉选择时,它将显示有关我的选择的信息,但它会打开一个只包含链接的新窗口。如果我删除NewWindow变量,它将仅加载当前页面中的链接,从而使其无法看到任何其他返回的数据。

我希望它像货币一样工作。但不是添加$我希望它将文本转换为URL

    function formatPrice(price) {
    return "$" + price.toFixed(2);
}

以下是在新窗口中打开可点击链接时的样子。我希望可点击链接显示在未定义的位置。

Apple iPhone 4
承运人ATT
颜色:黑色
Hyper:undefined
价格:$ 00.00

请帮助!!

Here's a link to the full code

1 个答案:

答案 0 :(得分:0)

CascadingDropDowns.cshtml文件的第23行。变化:

<p>Hyper: ${formatHyper(Hyper)}</p>

为:

<p>Hyper: <a id="link">${formathyper(hyper)}</a></p>

如果只有一个链接,那么这将有效。如果可能有多个,那么您需要使每个ID与超值匹配(假设它是唯一的)。

我无法使用您的代码对此进行测试,但它应该可以正常运行。而第一个答案的功能是:

<script type="text/javascript"> 
var texttheysee = 'My Link'; 
$(function formathyper(hyper) { 
    $('a#link').attr('href', hyper); 
    $('a#link').text(texttheysee); 
}); 

</script>