2011-08-30 83 views
16

如何使用Razor制作邮件链接?邮件中链接到剃刀

我见过Html.MailTo,但是当我尝试@ Html.Mail时什么都没有出现。

谢谢!

回答

16

HTML.MailTo()助手是“MVC3期货”项目的一部分,但就是这样做的替代品。

1)创建App_Code目录内一个新的.cshtml文件,并根据需要(例如HTMLHelpers.cshtml命名)

2)将文件写入

@helper EmailTextBox(string email, string title) { 
    <a href="mailto:@email">@title</a>  
} 

3以下)现在在你看来,你可以调用你的新函数。例如写

Email: @HTMLHelpers.EmailTextBox("[email protected]","George Chatzimanolis") 
15

你应该只是做一个正常的超链接:

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

剃刀和MVC的辅助方法并不是要取代HTML标签;它们旨在简化常见的数据绑定元素。

+0

但是,如果电子邮件是每个产品或某物的数据驱动?您需要随即生成电子邮件 –

+0

@PawelCioch:只需插入一个服务器变量即可。你可能需要括号。 – SLaks

+0

我的担忧只是Razor不认识ViewBag.Email'' –

-1
@ {VAR电子邮件=新HtmlString( “” mail给我 “”));} @email;
+1

Don't do that; it defeats the point of a templating engine. – SLaks

5

我得到这个问题的时候,我试图做简单的

<a href="mailto:@ViewBag.EmailTo">Email</a> 

但剃刀将其视为文本

我知道有HtmlHelpers等,但到目前为止,简单的代码为我工作

<a href="mailto:@{@ViewBag.EmailTo}">Email</a> 

变量是否来自模型或ViewBag它是关于在HREF @符号和剃刀

+1

Also 'Email' –