2012-05-08 3 views
0

У меня есть следующий класс:Как установить флажок с ASP MVC на мой взгляд?

public class City { 
     public string Name { get; set; } 
     public bool CityValid { get; set; } 
    } 

Я знаю, как настроить имя, но как я могу настроить поле CityValid так оно действует как флажок. Я хотел бы сделать это без использования HTML-помощников.

+3

могли бы вы объяснить причину "без htmlHelpers"? Это выглядит довольно странно ... –

+0

У меня есть еще одна логика, что я хочу поместиться вокруг вещей. Например, я сделаю это в цикле и добавлю разные имена в эти флажки. checkbox_1 и т. д. Именно по этой причине я хотел сделать это без помощников. Благодарю. –

+1

Возможно, вы захотите использовать что-то подобное, если у вас есть список флажков http://stackoverflow.com/a/4057281/491950 – Rob

ответ

3

Если вы действительно не хотите использовать помощник, вы бы использовать обычный HTML тег ввода:

атрибут
<input type="checkbox" id="CityValid" name="CityValid" value="@Model.CityValid" /> 
<input type="hidden" id="CityValue_Hidden" name="CityValid" value="false" /> 

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

При использовании помощников будет создано нечто похожее на вышеуказанную разметку. Скрытое поле существует так, что значение равно всегда отправлено с данными сообщения формы, независимо от того, установлен ли вы этот флажок или нет (если вы не открыли флажок, то значение не будет отправлено по умолчанию, даже не «false»,).

Однако, если вы не делаете что-то действительно странное, я бы рекомендовал вам использовать хелперы. Либо:

@Html.CheckboxFor(m => m.CityValid) 

или

@Html.EditorFor(m => m.CityValid) 
1

По вашему мнению, вы можете использовать EditorFor помощник:

@model City 
... 
@Html.EditorFor(x => x.CityValid) 

шаблон редактора по умолчанию для булева поля генерирует флажок.

+0

Даже если это странный запрос, она упомянула без HTML-помощников – Dante

+0

Я думаю, что * без HTML помощники * он/он имел в виду * без использования помощника Html.CheckBoxFor *. –

0

Вы можете сначала создать его с помощью HTML-хелперов, обратите внимание на разметке, которая получает созданную при запуске страницы, а затем воссоздать эту разметку ...

Смежные вопросы