2013-11-27 2 views
3

У меня вопрос:Показать HTML 5 Ссылка на номер телефона в Razor

Я хотел бы иметь телефонный номер с кликом на моей веб-странице 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> 

Update:

Создание метода расширения HtmlHelper позволит этому использовать свои взгляды так:

@Html.TelephoneLink("00000000000") 

или

@Html.TelephoneLink(item.AD_Tel) 

код Extension:

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

Вы пытались сначала поместить номер звонка в переменную и поместить его в href = "ЗДЕСЬ" ??

+0

да, я сделал. Это не сработало для меня. –

+0

Жаль, что это была вся информация, которую я могу дать ... Знание Html не самое лучшее ...Я постараюсь дать вам ответ, но это займет некоторое время;) – JRO

+0

Нет проблем, спасибо вам;) –

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

Это не работает, потому что теперь это считается ссылкой, а не числом. –

1

На основании ответа из hutchonoid:

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)

Смежные вопросы