2013-10-24 4 views
0
<div> 
Email: 
<a id="email href="mailto:@Model.Contact.Email">@Model.Contact.Email.ToStringMyCustomFormatted</a> 
</div> 

Я хочу создать собственный способ форматирования и применить его следующим образом. (таким же способом мы можем применить к этому метод ToString().) Я не хочу использовать JavaScript для форматирования с помощью Document.Ready(). Короче говоря, я хочу расширить метод ToString, например, ToStringMyCustomFormatted, с помощью которого я могу применить свои собственные правила для вывода строки. Я даже не уверен, что что-то подобное можно сделать. Просветите пожалуйста!ASP.NET MVC4 пользовательский метод форматирования для модели

ответ

1

Вы можете использовать простой C# метод расширения (или непосредственно на модели контакта):

public static class YourContactModelExtensions { 
    public static string ToStringMyCustomFormat(this YourContactModel m) { 
     // TODO 
    } 
} 

или если вы хотите, чтобы оно применялось ко всем строкам:

public static class StringExtensions { 
    public static string ToMyCustomFormat(this string s) { 
     // TODO 
    } 
} 

или помощника Razor функция на странице Razor:

@helper ToStringMyCustomFormat(YourContactModel m) { 
    @* TODO *@ 
} 

или

@helper ToMyCustomFormat(string s) { 
    @* TODO *@ 
} 
+0

Спасибо ...! Я следую этой ссылке: [Практическое руководство. Внедрение и вызов пользовательского метода расширения (Руководство по программированию на C#)] (http://msdn.microsoft.com/en-us/library/bb311042.aspx) – rak

+0

Только одна проблема: расширение должно состоять в 'String', а не' Contact', так как метод отзывается из свойства 'Email', а не непосредственно из экземпляра. –

+0

Обновлено для уточнения –