Я пытаюсь создать более «продвинутый» шаблон редактора для моего веб-приложения MVC, но у меня возникли небольшие трудности. Прежде чем я объясню, позвольте мне показать мой исходный код.
Вот код на мой взгляд (с использованием шаблона):
@Html.EditorFor(model => model.Height, "UnitTemplate", new { unitModel = Model.HeightUnit, unitType = Units.Distance })
Вот шаблон:
@{
Layout = null;
}
@using MyProject.Models;
@{
var unitModel = this.ViewData["unitModel"];
var unitType = this.ViewData["unitType"] as SelectList;
}
<div class="data-group">
<div class="editor-label">
@Html.LabelFor(model => model)
</div>
<div class="option1">
@Html.TextBoxFor(model => model)
</div>
<div class="units">@Html.DropDownListFor(model => unitModel, unitType, new { @class = "unit" })</div>
<div class="validation">
<div>@Html.ValidationMessageFor(model => model)</div>
</div>
</div>
Как видите, у меня есть какое-то значение (в данном случае, Высота), и у меня также есть тип единицы измерения, связанный с этим значением (HeightUnit). Я хочу иметь возможность ОБЯЗАТЕЛЬНО передавать значение единицы измерения, связанное с моделью (поскольку я использую этот шаблон во многих местах), а также тип единицы измерения (поскольку это также может измениться). В конечном итоге цель состоит в том, чтобы позволить пользователю быстро преобразовывать значения.
К счастью, до этого момента все работает (конверсия, заполнение и т. Д.), За исключением того, что, когда я сохраняю результаты, unitModel НЕ сохраняет в базу данных. У кого-нибудь есть предложения о том, что я могу сделать, чтобы заставить это работать?