@jammywork1

Как построить структуру html input' ов чтобы Action принял сериализованный объект?

пример:
ObjectModel
public int id;
public string password;
public bool tired;

View получает IEnumerable
Как их вывести так чтобы при отправке формы в Action я получил обратно объекты
public void Action(ObjectModel[] objects)
сейчас получаю их вот так
public void Action(int[] ids, string[] passwords, bool[] tireds)

Разумеется не удобно, да и не красиво.
Вывод делаю с использованием HTML Helper'ов
@foreach (var obj in Model) {
    @Html.TextBoxFor(m => obj.Id) <br />
    @Html.TextBoxFor(m => obj.password) <br />
    @Html.CheckBoxFor(m => obj.tired) <br />
    <br />
    <br />
}


вот что получается

<input data-val="true" data-val-number="Значением поля Id должно быть число." data-val-required="Требуется поле Id." id="obj_Id" name="obj.Id" type="text" value="109" /> <br />
<input id="obj_password" name="obj.password" type="text" value="reader" /> <br />
<input data-val="true" data-val-required="Требуется поле tired." id="obj_tired" name="obj.tired" type="checkbox" value="true" />
<input name="obj.tired" type="hidden" value="false" /><br /><br /><br />
<input id="obj_Id" name="obj.Id" type="text" value="108" /> <br />
<input id="obj_password" name="obj.password" type="text" value="reguser" /> <br />
<input id="obj_tired" name="obj.tired" type="checkbox" value="true" /><input name="obj.tired" type="hidden" value="false" /> <br /><br /><br />
<input id="obj_Id" name="obj.Id" type="text" value="4" /> <br />
<input id="obj_password" name="obj.password" type="text" value="Зарегистрированный пользователь" /> <br />
<input id="obj_tired" name="obj.tired" type="checkbox" value="true" /><input name="obj.tired" type="hidden" value="false" /> <br /><br /><br />
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 2
@maxyc_webber
Web-программист
оффтоп. божечки. как этот код страшно смотрится
Ответ написан
Чисто теоретически нужно формировать input'ы следующим образом:
<div>
<input  name="[0]obj.Id" type="text"  /> <br />
<input  name="[0]obj.password" type="text"  /> <br />
<input name="[0]obj.tired"  type="text"/><br />
</div>
<div>
<input  name="[1]obj.Id" type="text"  /> <br />
<input  name="[1]obj.password" type="text"  /> <br />
<input name="[1]obj.tired" type="text" /><br />
</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы