2011-08-30 38 views
16

Làm cách nào để tạo liên kết mailto bằng Razor?Liên kết MailTo trong Razor

Tôi đã xem Html.MailTo, nhưng khi tôi thử @ Html.MailTo không có gì xuất hiện.

Cảm ơn!

Trả lời

16

HTML.MailTo() helper là một phần của dự án 'MVC3 tương lai', nhưng có một thay thế cho cách để làm điều đó.

1.) Tạo một file .cshtml mới bên trong thư mục App_Code và đặt tên cho nó như bạn muốn (ví dụ HTMLHelpers.cshtml)

2.) Viết sau trong file

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

3 .) Bây giờ trong quan điểm của bạn, bạn có thể gọi chức năng mới của bạn. Ví dụ viết

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

Bạn chỉ nên thực hiện một siêu liên kết bình thường:

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

Razor và MVC phương pháp helper không nhằm thay thế các thẻ HTML; chúng có ý định làm cho các phần tử giới hạn dữ liệu chung trở nên đơn giản hơn.

+0

Nhưng nếu email là dữ liệu được điều khiển cho mỗi sản phẩm hay gì đó thì sao? bạn cần sau đó để tạo email khi đang bay –

+0

@PawelCioch: Chỉ cần chèn một biến máy chủ. Bạn có thể cần dấu ngoặc đơn. – SLaks

+0

Mối quan tâm của tôi chỉ là Razor không nhận ra ViewBag.Email '' –

-1
@ {var email = HtmlString mới ("" gửi thư cho tôi ""));} @email;
+1

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

5

tôi nhận được cho câu hỏi này khi tôi đã cố gắng làm đơn giản

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

nhưng Razor sẽ coi đây là văn bản

Tôi biết có HtmlHelpers và mã như vậy nhưng cho đến nay đơn giản làm việc cho tôi

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

Cho dù một biến xuất phát từ mô hình hoặc ViewBag nó về @ đăng nhập href và Razor

+1

Also 'Email ' –

Các vấn đề liên quan