У меня есть перечисление в модели. Я попытался создать переключатели для этого перечисления, на мой взгляд. Это работает нормально, и один флажок установлен в соответствии со значением модели (например, x o o).

@Html.RadioButtonFor(model => model.Data.CementType, ReMod.CementType.R, new { @id = "CementTypeR" })
<label for="CementTypeR">R</label>
@Html.RadioButtonFor(model => model.Data.CementType, ReMod.CementType.N, new { @id = "CementTypeN" })
<label for="CementTypeN">N</label>
@Html.RadioButtonFor(model => model.Data.CementType, ReMod.CementType.S, new { @id = "CementTypeS" })
<label for="CementTypeS">S</label>

Однако после того, как я создал EditTemplate для перечисления

@model ReMod.CementType

@Html.RadioButtonFor(model => model, ReMod.CementType.R, new { @id = "CementTypeR" })
<label for="CementTypeR">R</label>
@Html.RadioButtonFor(model => model, ReMod.CementType.N, new { @id = "CementTypeN" })
<label for="CementTypeN">N</label>
@Html.RadioButtonFor(model => model, ReMod.CementType.S, new { @id = "CementTypeS" })
<label for="CementTypeS">S</label>

И назвал этот шаблон из представления

@Html.EditorFor(model => model.Data.CementType)

, чем не отмечен ни один из флажков (например, o o o).

Спасибо за любой совет ...

0
user3546486 17 Апр 2014 в 23:03

2 ответа

Лучший ответ

Так что неважно, что это не работает. Я сделал вспомогательный метод таким. Я знаю, это не идеальное решение ...

@helper EditorForCementType(CementType type)
{
    @Html.RadioButtonFor(model => type, CementType.R, new { @id = "CementTypeR" })
    <label for="CementTypeR">R</label>
    @Html.RadioButtonFor(model => type, CementType.N, new { @id = "CementTypeN" })
    <label for="CementTypeN">N</label>
    @Html.RadioButtonFor(model => type, CementType.S, new { @id = "CementTypeS" })
    <label for="CementTypeS">S</label>
}
0
user3546486 22 Апр 2014 в 19:26

@model ReMod.CementType в основном говорит, что модель, о которой вы говорите, относится к типу ReMod.CementType. Объявив это, вы можете обратиться к этой модели с помощью model. Это мое понимание. попробуйте сделать это:

@model ReMod.CementType

@Html.RadioButtonFor(model => model, model.R, new { @id = "CementTypeR" })
<label for="CementTypeR">R</label>
@Html.RadioButtonFor(model => model, model.N, new { @id = "CementTypeN" })
<label for="CementTypeN">N</label>
@Html.RadioButtonFor(model => model, model.S, new { @id = "CementTypeS" })
<label for="CementTypeS">S</label>
0
one stevy boi 17 Апр 2014 в 19:09