我正在尝试获取一个 mailto 链接以显示人名而不是实际的电子邮件地址。
在我的details.cshtml
文件中,我将页面强输入到我的供应商
@model TheWorkshop.Web.Models.Supplier
但是虽然我可以使用
@Html.DisplayFor(model => model.Email)
显示与 mailto 相同的文本值的 mailto 链接,例如
<a href="mailto: me@blah.com">me@blah.com</a>
我想要的是显示此人的姓名。所以在寻找之后我决定尝试制作一个 Helper 方法
public static MvcHtmlString PrettyEmailAddress(this HtmlHelper htmlHelper,
string email, string name)
{
var mailToLink = new TagBuilder("a");
mailToLink.Attributes.Add("mailto", email);
mailToLink.SetInnerText(name);
return MvcHtmlString.Create(mailToLink.ToString());
}
但问题是当我尝试在绑定中调用它时:
@Html.PrettyEmailAddress(@model.Email, @model.Name))
我收到编译错误
CS0103:当前上下文中不存在名称“模型”
如果我传递字符串而不是@model.Email
and '@model.Name` 那么助手工作正常,但我如何将变量传递给助手?