我正在尝试为我的 MVC Web 应用程序创建一个更“高级”的编辑器模板,但我遇到了一些困难。在我解释之前,让我展示我的源代码。
这是我认为的代码(使用模板):
@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>
如您所见,我有一些值(在本例中为 Height),并且我还有一个与该值关联的单位类型(HeightUnit)。我希望能够传入与模型关联的单位值(因为我在很多地方都使用这个模板)以及单位类型(因为这也可以改变)。最终,目标是允许用户在值之间快速转换。
幸运的是,到目前为止一切正常(转换、人口等),除了当我保存结果时,unitModel 不会保存到数据库中。有人对我能做些什么来让它工作有什么建议吗?