2013-11-27 50 views
3

我有以下問題:顯示HTML 5剃刀中的電話號碼鏈接

我想在我的HTML5網頁上有可點擊的電話號碼。 通常我會簡單地使用

<a href="tel: +123456789"> 123456789 </a> 

但在我的情況下,我從一個數據庫的數量和訪問次數石灰這一點。

現在的代碼行看起來是這樣的:

<a href=""> @Html.DisplayFor(modelItem => item.AD_Tel)</a> 

那麼,如何讓href呼叫的號碼,如果它不是一個固定的數字?

如果有什麼不清楚的地方,請留下評論,我會添加缺少的信息。

回答

3

你應該能夠做到這一點是這樣的:

<a href="tel:[email protected]_Tel">@Html.DisplayFor(modelItem => item.AD_Tel)</a> 

更新:

創建的HtmlHelper擴展方法將允許這個使用你的看法是這樣的:

@Html.TelephoneLink("00000000000") 

@Html.TelephoneLink(item.AD_Tel) 

擴展代碼:

基於回答hutchonoid
public static MvcHtmlString TelephoneLink(this HtmlHelper htmlHelper, string telephoneNumber) 
    { 
     var tb = new TagBuilder("a"); 
     tb.Attributes.Add("href", string.Format("tel:+{0}", telephoneNumber)); 
     tb.SetInnerText(telephoneNumber); 
     return new MvcHtmlString(tb.ToString()); 
    } 
+0

謝謝,它爲我工作! –

0

您是否曾嘗試將phonenumber放入變量中,並將其放入href =「HERE」?

+0

是的,我做到了。它不適合我。 –

+0

對不起,這是關於我可以給的所有信息... Html的知識不是最好的...我會盡力給你一個答案,但它需要一些時間;) – JRO

+0

沒問題,謝謝你;) –

0
<a href="@Html.DisplayFor(modelItem => item.AD_Tel)"> 123456789 </a> 
+0

這是行不通的,因爲現在它被認爲是一個鏈接,而不是一個數字。 –

1

public static MvcHtmlString TelephoneLinkFor<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression, object htmlAttributes = null) 
    { 
     var data = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);    
     var tb = new TagBuilder("a"); 
     tb.Attributes.Add("href", string.Format("tel:+{0}", data.Model)); 
     tb.SetInnerText("" + data.Model); 
     return new MvcHtmlString(tb.ToString()); 
    } 

用法:@Html.TelephoneLinkFor(model => model.PhoneNumber)