Вручную привязать модель MVC к флажку без помощника HTML - PullRequest
2 голосов
/ 15 июня 2011

Я строю экран из массива объектов ViewModel, которые содержат три поля:

    public class StartViewModel {

        public string Id{ get; set; }

        public string Name { get; set; }

        public bool Accept { get; set; }
    }

Затем я пытаюсь связать это с моим представлением так:

<input type="hidden" name="StartRequests[<%: i.ToString()  %>].Name" value="<%: StartRequests.Name %>" />
<input type="hidden" name="StartRequests[<%: i.ToString()  %>].Id" value="<%: StartRequests.Id%>" />

Затем я хочу привязать флаг Accept к флажку. Я понимаю, что у флажка отсутствует атрибут имени, поэтому я не могу использовать его немедленно, и я понимаю, что Html.CheckBoxFor сгенерирует второе скрытое поле, в котором будет храниться значение. Так вот моя проблема.

У меня нет возможности использовать javascript. Мне нужно настроить этот флажок, чтобы эффективно настроить значение в ViewModel, но я не знаю, как это сделать. Как помощник Html.CheckBox заполняет скрытое поле, которое он генерирует? Я предположил, что это было сделано с помощью JavaScript. Может кто-нибудь помочь мне понять способ сделать это? Я все еще работаю над идеями связывания моделей.

1 Ответ

0 голосов
/ 10 апреля 2013

Для следующей модели:

public class StartViewModel {

    public string Id{ get; set; }

    public string Name { get; set; }

    public bool Accept { get; set; }
}

//-> Accept = false.

Решение: Изменить public bool Accept { get; set; } на public string Accept { get; set; }

При отправке, если установлен флажок, значение «Принять» = «вкл». Вы можете обнаружить проверенное значение по пути.

...