Для отправки данных формы на сервер из вызова AJAX для привязки сетки Telerik MVC мы можем установить e.data в OnDataBinding событии для анонимного объекта JavaScript
<script type="text/javascript">
function Grid_onDataBinding(e) {
var categoryValue = "Beverages";
var priceValue = 3.14;
// pass additional values by setting the "data" field of the event argument
e.data = {
// the key ("category") specifies the variable name of the action method which will contain the specified value
category: categoryValue,
price: priceValue
};
}
</script>
Чтобы упростить привязку модели для логического значения, ASP.NET MVC
создает флажки вместе со скрытым текстовым полем с тем же именем
<input name="myCheckBox" class="check-box" id="myCheckBox" type="checkbox" CHECKED="checked" value="true"/>
<input name="myCheckBox" type="hidden" value="false"/>
и когда они представлены, отправленные данные равны
myCheckBox=true&MyCheckBox=false
- когда флажок установлен
myCheckBox=false
- когда флажок не установлен
Для страниц, на которых нет флажка, данные публикации могут быть легко получены с помощью
e.data = form.serializeObject()
где serializeObject создает этот объект путем циклического перебора всех полей формы. Как построить этот объект в случае форм, когда есть флажки, как описано выше? В основном, как можно представить список пар имя-значение в форме объекта, если имена допускают дублирование?
e.data = {
textBox1: "some value1",
myCheckBox: true //,
//myCheckBox: false // ???
};
Реализация serializeObject создает массив для таких элементов формы, которые передаются как myCheckBox[]=true&myCheckBox[]=false
, что нарушает привязку модели на стороне сервера.