2017-02-16 3 views
1

У меня есть этот код:ссылки не работают в бритве

<a href="tel:[email protected]">[email protected]</a> 

Когда я использую телефон как [email protected], то @ знак не выделен. И это выглядит так в браузере: [email protected] Я имею в виду, что вместо номера телефона отображается код.

Когда я кладу пространство, как это:

<a href="tel:0 @Model.Work.Phone">0 @Model.Work.Phone</a> 

Знак @ Осроена, но я хочу 0 и @ быть рядом друг с другом. Как я могу это достичь? Благодарю.

+1

Я ожидаю [явное выражение] (HTTP: // haacked .com/archive/2011/01/06/razor-syntax-quick-reference.aspx /) может работать: '0 @ (Model.Work.Phone)' – rene

+0

@rene Скопировали бы скобки в браузере? Благодарю. – jason

+1

У меня нет коробки, чтобы попробовать, но на основании того, что я помню, они не появляются. – rene

ответ

1

На Razor (по крайней мере, на 2,0 или выше), вы можете использовать explicit expression:

<a href="tel:[email protected](Model.Work.Phone)">[email protected](Model.Work.Phone)</a> 

В качестве альтернативы вы можете использовать прямой вызов string.Format предоставлямого Gypsy Spellweaver

Другой альтернативой является используя Razor делегат:

@{ 
    Func<dynamic, object> phoneformat = (item) => 
     { 
      // if we have a string 
      if (item is String && !String.IsNullOrEmpty(item)) 
      { 
       // check if the first is not a 0 
       if (item[0] != '0') 
       { 
        // add it 
        item = String.Format("0{0}", item); 
       } 
      } 
      else if(item is Int32) 
      { 
       /// ints never have leading 0, so add it 
       item = String.Format("0{0}", item); 
      } 
      return item; 
     }; 
} 

<a href="tel:[email protected](Model.Work.Phone)">[email protected](Model.Work.Phone)</a> <br/> 
<a href="tel:[email protected](Model.Work.PhoneInt)">[email protected](Model.Work.PhoneInt)</a> 

<a href="tel:@phoneformat(Model.Work.Phone)">@phoneformat(Model.Work.Phone)</a> <br/> 
<a href="tel:@phoneformat(Model.Work.PhoneInt)">@phoneformat(Model.Work.PhoneInt)</a> 

Вот это модель я использовал:

public class Work 
{ 
    public string Phone { get; set; } 
    public int PhoneInt { get; set; } 
} 

и контроллер, который заполняет его:

public ActionResult Index() 
{ 
    var model = new MyModel(); 
    model.Work = new Work {Phone = "612345678", PhoneInt = 612345678}; 
    return View(model); 
} 

Визуализированное содержание HTML выглядит следующим образом:

<a href="tel:0612345678">0612345678</a> <br/> 
<a href="tel:0612345678">0612345678</a> 

<a href="tel:0612345678">0612345678</a> <br/> 
<a href="tel:0612345678">0612345678</a>