2015-01-13 3 views
5

Как передать некоторые дополнительные свойства EditorTemplate?Передать дополнительные свойства редакторуTemplate

Я хочу, чтобы использовать его как этот (вид псевдокоде):

@Html.EditorFor(m => m.ReturnFlight, new { additionalViewData = new { FlightType = FlightType.Return } }) 
@Html.EditorFor(m => m.OutboundFlight, new { additionalViewData = new { FlightType = FlightType.Outbound } }) 

FlightTemplate:

<h1>FLight @Model.FlightNumber</h1> 
@if(FlightType == FlightType.Outbound) 
{ 
    // Display stuff for outbound flights 
} 
else if(FlightType == FlightType.Return) 
{ 
    // Display stuff for return flights 
} 
@Form.TextboxFor(m => m.Destination) 

ответ

9

Вы очень много есть это уже - вы можете передать дополнительные данные представления в точности это способом, используя this overload. Вам просто нужно использовать его в своем шаблоне редактора. Помните, что значения в словаре ViewData также доступны в динамическом ViewBag объекте.

@Html.EditorFor(m => m.ReturnFlight, new { FlightType = FlightType.Return }) 
@Html.EditorFor(m => m.OutboundFlight, new { FlightType = FlightType.Outbound }) 

FlightTemplate

<h1>Flight @Model.FlightNumber</h1> 
@if(ViewBag.FlightType == FlightType.Outbound) 
{ 
    // Display stuff for outbound flights 
} 
else if(ViewBag.FlightType == FlightType.Return) 
{ 
    // Display stuff for return flights 
} 
@Form.TextboxFor(m => m.Destination) 
+0

Спасибо за ваш быстрый и большой ответ, пропустил часть ViewBag и теперь он работает. –

Смежные вопросы