我有这段代码:
<a href="tel:0@Model.Work.Phone">0@Model.Work.Phone</a>
当我使用0@Model.Work.Phone
之类的手机时,@
符号不会突出显示。这在浏览器中看起来像这样:0@Model.Work.Phone。我的意思是代码显示而不是电话号码。
当我放置这样的空间时:
<a href="tel:0 @Model.Work.Phone">0 @Model.Work.Phone</a>
@符号突出显示,但我希望0
和@
彼此相邻。我怎样才能做到这一点?感谢。
答案 0 :(得分:1)
在Razor上(至少在2.0或以上),您可以使用explicit expression:
<a href="tel:0@(Model.Work.Phone)">0@(Model.Work.Phone)</a>
作为替代方案,您可以使用Gypsy Spellweaver
提供的直接string.format调用另一种选择是使用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:0@(Model.Work.Phone)">0@(Model.Work.Phone)</a> <br/>
<a href="tel:0@(Model.Work.PhoneInt)">0@(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>