Razor打印HTML编号变量

时间:2015-02-20 12:27:53

标签: asp.net-mvc razor

今天我有一个非常noob的问题。请记住,这是我在Razor的第一个项目,所以不要太苛刻:)

当我将变量打印到模板时会发生问题。 如果它是一个简单的字符串我没有问题,但当它是一个数字时,它就不会打印该值。

作品

string url = @CurrentPage.Site.Replace("http://", "").Replace("https://", "");
<a href="//@url" target="_blank">@url</a>
// prints - <a href="//www.google.pt" target="_blank">www.google.pt</a>

不能工作

string num = @CurrentPage.Telefone.Replace(" ", "");
<a href="tel:+123@num">@CurrentPage.Telefone</a>
// prints - <a href="tel:+123@num">123 456 789</a>

有人可以解释为什么会这样吗?

谢谢:)

3 个答案:

答案 0 :(得分:3)

您可以考虑查看此快速参考: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/

@{
    string num = @CurrentPage.Telefone.Replace(" ", "");
}
<a href="tel:+123@(num)">@CurrentPage.Telefone</a>

您必须使用num包围(),否则剃刀引擎会认为您正在尝试添加电子邮件地址或类似内容。

答案 1 :(得分:2)

刚刚放<a href="tel:+351@(num)">@CurrentPage.Telefone</a>;)

答案 2 :(得分:1)

试试这个:

string num = @CurrentPage.Telefone.Replace(" ", "");
<a href="tel:+123@Html.Raw(num)">@CurrentPage.Telefone</a>
// prints - <a href="tel:+123@num">123 456 789</a>

尝试使用@Html.Raw(num) instead of @num