2010-09-30 122 views
0

輸出文本如果您有文字從數據庫中來,例如:超鏈接

"New Apple TV Offers 8 GB of Internal Storage, 256 MB RAM http://t.co/fQ7rquF" 

是否有需要文字和包裝Web地址作爲錨標記一個輔助方法?

回答

1

關閉我的頭頂我會運行一個正則表達式來匹配鏈接模式並在其周圍放置錨標籤。

在谷歌找到this

using System.Text.RegularExpressions; 

public string ConvertURLsToHyperlinks(string sInput) 
{ 
    return Regex.Replace(sInput, @"(\bhttp://[^ ]+\b)", @"<a href=""$0"">$0</a>"); 
} 

它尋找的「http://」後面的東西,這不是一個空格,字邊界分隔。

+1

這將在問題中提到的示例中起作用,但現實世界中的許多URL以斜槓('/')或其他標點符號結尾,並且您的正則表達式不匹配。 – Timwi 2010-09-30 15:06:39

+0

這實際上並沒有工作。我從Kevin提供的鏈接中複製了RegEx - Regex.Replace(sInput,@「(\ bhttp:// [^] + \ b)」,@「$0」); – Jon 2010-09-30 15:12:47

+0

@Timwi - 我們如何修改Regex來修復它? – Jon 2010-09-30 15:16:04

1

我相信不存在這樣的輔助方法,但你可以創建一個

public static class helper{ 
public static string AnchorHelper(this htmlHelper helper, string text) 
{ 
    //here u can use kevin's function to generate anchors 
    return ConvertURLsToHyperlinks(text); 
} 
} 

你必須添加相應的UR視圖名稱空間,然後ü可以只使用它像其他HTML輔助

<%=Html.AnchorHelper(TextwithUrls)%> 
+0

該類需要被標記爲'static'才能在其中允許擴展方法。 – Timwi 2010-09-30 15:07:50

+0

@Timwi感謝您的糾正。更新了答案 – 2010-09-30 15:17:27