Так что у меня этот класс, который позволяет мне проверить, если цвет был выбран или нет:Установка значения булева объекта в списке истинного
public class Colors
{
public bool mIsSelected { get; set; }
public string mName { get; set; }
}
Перед отправкой списка к просмотру, I заполнить его с этими значениями:
public List<Colors> mListColors = new List<Colors>();
mListColors.Add(new Colors{ mIsSelected = false, mName = "black"});
mListColors.Add(new Colors { mIsSelected = false, mName = "blue" });
mListColors.Add(new Colors { mIsSelected = false, mName = "white" });
mListColors.Add(new Colors { mIsSelected = false, mName = "red" });
mListColors.Add(new Colors { mIsSelected = false, mName = "green" });
И на мой взгляд, я сделать их, как это:
@for (int i = 0; i < Model.mListColors.Count; i++)
{
var item = Model.mListColors[i];
switch (item.mName)
{
case "black":
@Html.Image("~\\Images\\Functional\\blackColor.jpeg", item.mName.ToUpper(), null)
@Html.CheckBoxFor(_item => Model.mListColors[i].mIsSelected, item.mIsSelected)
@Html.HiddenFor(_item => _item.mListColors[i].mName)
break;
case "blue":
@Html.Image("~\\Images\\Functional\\blueColor.jpeg", item.mName.ToUpper(), null)
@Html.CheckBoxFor(_item => Model.mListColors[i].mIsSelected, item.mIsSelected)
@Html.HiddenFor(_item => _item.mListColors[i].mName)
break;
case "red":
@Html.Image("~\\Images\\Functional\\redColor.jpeg", item.mName.ToUpper(), null)
@Html.CheckBoxFor(_item => Model.mListColors[i].mIsSelected, item.mIsSelected)
@Html.HiddenFor(_item => _item.mListColors[i].mName)
break;
case "green":
@Html.Image("~\\Images\\Functional\\greenColor.jpeg", item.mName.ToUpper(), null)
@Html.CheckBoxFor(_item => Model.mListColors[i].mIsSelected, item.mIsSelected)
@Html.HiddenFor(_item => _item.mListColors[i].mName)
break;
case "white":
@Html.Image("~\\Images\\Functional\\whiteColor.jpeg", item.mName.ToUpper(), null)
@Html.CheckBoxFor(_item => Model.mListColors[i].mIsSelected, item.mIsSelected)
@Html.HiddenFor(_item => _item.mListColors[i].mName)
break;
}
}
Чтобы установить флажок и установить значение true или false, в зависимости от того, установлен ли флажок или нет. HtmlImage - это специальный помощник, который позволяет мне отображать изображение.
Но значение в контроллере всегда неверно, несмотря на то, что флажок установлен или нет, так что я могу сделать, чтобы исправить это?
Есть ли какой-либо код, где флажок изменяет значение в словаре? – Alexander
Хмм, ну, я думал, что сделанное представление позаботится об этом, нет? Разве это не цель помощника «Html.CheckBoxFor»? – hsim
Вы специально присвоили значение 'mBlackColor'' mBlueColor' 'false. Я не вижу никакого кода, где его не установлено ot 'false' –