2011-08-30 8 views

Odpowiedz

16

HTML.MailTo() pomocnik jest częścią projektu 'mvc3 Futures', ale nie jest alternatywą sposób to zrobić.

1.) Utwórz nowy plik .cshtml wewnątrz katalogu App_Code i nazwij go jak chcesz (np HTMLHelpers.cshtml)

2.) Wpisz następujący tekst w pliku

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

3 .) Teraz możesz zobaczyć swoją nową funkcję. Na przykład napisać

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

Trzeba tylko wykonać normalny hiperłącze:

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

brzytwa i MVC metody pomocnicze nie mają na celu zastąpienia znaczników HTML; są one przeznaczone do uproszczenia wspólnych elementów związanych z danymi.

+0

Ale co, jeśli e-mail jest kierowany danymi na produkt lub coś takiego? musisz wtedy wygenerować e-mail w locie –

+0

@PawelCioch: Wystarczy wstawić zmienną serwera. Możesz potrzebować nawiasów. – SLaks

+0

Moim zmartwieniem było tylko to, że Razor nie rozpoznaje ViewBag.Email '' –

-1
@ {var email = new HtmlString ("" napisz do mnie ""));} @email;
+1

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

5

mogę na to pytanie, kiedy próbuje zrobić prosty

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

ale Razor będzie traktować tego jako tekst

wiem, że istnieją HtmlHelpers i takie, ale do tej pory prosty kod pracował dla mnie

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

czy zmienna pochodzi z modelu lub ViewBag chodzi o znaku @ w href i Razor

+1

Also 'Email ' –