На странице администратора я изначально генерировал несколько флажков в представлении, как показано ниже:
Модель:
public class Foo
{
public const string Bar = "SomeString";
}
Представление:
@Html.CheckBox(Foo.Bar)
@Html.Label(Foo.Bar)
Однако,Я хотел изменить отображаемое имя нескольких флажков, поэтому я создал модель представления (чтобы позже добавить атрибут отображаемого имени):
public class FooViewModel
{
public string Bar
{
get { return Foo.Bar; }
}
}
И изменил представление:
@Html.CheckBox(Model.Bar)
@Html.LabelFor(m => m.Bar)
Однако представление теперь генерирует ошибку при отображении флажка:
Строка не была распознана как допустимое логическое значение
Обратите внимание, что если я изменю свойствоимя в модели представления, отличное от «Bar», представление отображается правильно.EG:
public class FooViewModel
{
public string WTF
{
get { return Foo.Bar; }
}
}
@Html.CheckBox(Model.WTF)
@Html.LabelFor(m => m.WTF)
Кто-нибудь может объяснить мне, почему эта ошибка возникает, если мое свойство viewmodel называется "Bar"?
Редактировать : я обновил свой вопроснемного видя как, я создаю некоторую путаницу.Представление используется в качестве формы поиска, а флажки просто используются для выбора «критерия поиска».
Я создаю флажок таким образом, чтобы имя / идентификатор флажка было связано с соответствующей бизнес-логикой в контроллере.
Я знаю, что код не будет компилироваться, если свойствоимя / имя поля в пределах одного и того же класса идентичны.Это не проблема, так как я просто инициализирую свойство из константы в другом пространстве имен.