В вашем сообщении отсутствует какой-либо соответствующий код, поэтому я собираюсь заполнить пробелы предположениями:
Учитывая следующий класс и перечисление:
public class ReferencesModel
{
public long id { get; set; }
public string Link { get; set; }
public string Text { get; set; }
public string Type { get; set; }
public int Regimens { get; set; }
public Guid? GuidelineId { get; set; }
public int SortOrder { get; set; }
}
public enum RegimenReferences
{
[Description("This is A")]
A = 0,
[Description("This is B")]
B = 1,
[Description("This is C")]
C = 2,
[Description("This is D")]
D = 3
}
и следующий помощник метод для отображения текста аннотации перечисления:
public static string ToDescriptionString<T>(this T e) where T : IConvertible
{
if (e is Enum)
{
Type type = e.GetType();
Array values = System.Enum.GetValues(type);
foreach (int val in values)
{
if (val == e.ToInt32(CultureInfo.InvariantCulture))
{
var memInfo = type.GetMember(type.GetEnumName(val));
var descriptionAttribute = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false).FirstOrDefault() as DescriptionAttribute;
if (descriptionAttribute != null)
{
return descriptionAttribute.Description;
}
}
}
}
return null;
}
Ваш код Razor будет следующим для использования переключателя и проверка базы на значение:
<label for="RegimenReferencesD_@Model">
<input type="radio" id="RegimenReferencesC_@Model" @if (Model.Regimens == (int)RegimenReferences.D) { Html.Raw("checked"); } name="RegimenReferences" value="@((int)RegimenReferences.D)" class="regimen-reference">
(D) @RegimenReferences.D.ToDescriptionString()
</label>