2010-09-27 5 views
1

Я пытаюсь выяснить, есть ли более короткий способ записи данных в представление, чем то, что я сейчас делаю. Это то, что я в настоящее время, на мой взгляд:Более короткий способ записи данных на вид

<td> 
    <% 
     if (Model.AnnualIncome != null) 
     { 
     %> 
     <%: "R " + Model.AnnualIncome.ToString() %> 
     <% 
     } 
    %> 
</td> 

Есть более короткий способ отображения годового дохода на экране, чем иметь все <%%>?

Благодаря

ответ

1

Нечто подобное <%=string.Format("R {0}", Model.AnnualIncome) %> должно быть более кратким.

Редактировать: Ой, только что понял, что вы не хотите печатать «R», если оно равно null. В таком случае, что-то вроде этого:

<%=(Model.AnnualIncome == null ? "" : string.Format("R {0}", Model.AnnualIncome)) %> 
+0

это может быть далее сокращенно: <% = (Model.AnnualIncome ?? string.Format ("R {0}" , Model.AnnualIncome))%> –

+0

@jim, на самом деле это будет печатать только AnnualIncome без «R», если это не null, и напечатать «R», если оно равно null. – Paul

+0

paul - хороший улов. мои пальцы были в отчаянии, чтобы добавить что-то по внешнему виду :) –

1

Вы можете использовать другой вид двигателя, если вы не любите <%%> везде.

Razor (CSHTML) еще не выпущен, но вы можете скачать его предварительный просмотр. Я знаю, что есть также NHaml и еще один.

2

ли эта работа?

<td> 
    <%: Model.AnnualIncome != null ? "R " + Model.AnnualIncome : string.Empty %> 

</td> 
+0

Да, спасибо. –

2

Как насчет использования ViewModel для форматирования данных для представления?

public class AccountViewModel 
{ 
    public decimal AnnualIncome { get; set; } 

    public string GetAnnualIncome() 
    { 
     return Model.AnnualIncome != null ? "R" + AnnualIncome : string.Empty; 
    } 
} 

Затем на ваш взгляд, вы можете сделать что-то вроде:

<td><%= Model.GetAnnualIncome() %></td>