为什么DataType.EmailAddress会自动转换链接?

时间:2012-08-30 15:04:00

标签: asp.net-mvc-3 razor

我正在使用DataType.EmailAddress的模型。我想在运行时修改地址链接,但它已经自动拥有电子邮件链接,阻止我修改。

@{
    var subject = "";
    if (Model.Name.Length > 30)
    {
        subject = Model.Name.Substring(0, 30) + "...";
    }
    else
    {
        subject = Model.Name;
    }
}
<a href="mailto:@Html.DisplayFor(model => model.email)?subject=Re: @subject">model => model.email</a>

但我得到了

<a href="mailto:&lt;a href=&quot;mailto:emailaddress&quot;&gt;emailaddress&lt;/a&gt;?subject=Re: subject"><a href="mailto:emailaddress">emailaddress</a></a>

而不是

<a href="mailto:&lt;a href=&quot;mailto:emailaddress&quot;&gt;emailaddress&lt;/a&gt;?subject=Re: subject">emailaddress</a>

为什么电子邮件地址会自动转换为链接表单?以及如何阻止它?我想保持数据类型以使用验证。

1 个答案:

答案 0 :(得分:1)

您正在尝试打印属性的值:@model.Email DisplayFor不是你想要的。

此外,您需要对subject参数进行网址编码,包括Re:之后的空格。