У меня есть следующее на мой взгляд:
@Html.HiddenFor(x => x.MeasurementUnitType)
MeasurementUnitType - это перечисление, которое выглядит следующим образом:
public enum MeasurementUnitType
{
Metric, Imperial
}
Что бы ни происходило с этим перечислением в модели, для скрытого поля всегда устанавливается метрика.
Я попытался создать для него шаблон редактора:
@using Ns.Domain.Models.Enums
@model Ns.Domain.Models.Enums.MeasurementUnitType
@{
switch (Model)
{
case MeasurementUnitType.Metric:
<text>
@Html.Hidden("Metric", ViewData.TemplateInfo.FormattedModelValue)
</text>
break;
case MeasurementUnitType.Imperial:
<text>
@Html.Hidden("Imperial", ViewData.TemplateInfo.FormattedModelValue)
</text>
break;
default:
throw new ArgumentOutOfRangeException();
}
}
но это вывело бы скрытое поле как
<input id="NewTable_MeasurementUnitType_Metric" name="NewTable.MeasurementUnitType.Metric" type="hidden" value="Metric" />
или
<input id="NewTable_MeasurementUnitType_Imperial" name="NewTable.MeasurementUnitType.Metric" type="hidden" value="Imperial" />
соответственно
это не сработает, поскольку Id имеет действительное значение перечисления, а также имя перечисления в идентификаторе ...
У кого-нибудь есть идеи?