Как сущности / модели Vue js сопоставляются с DTO в контроллере? - PullRequest
0 голосов
/ 11 февраля 2019

Если бы мне нужно было выполнить запрос на публикацию во внешнем интерфейсе с использованием Vue.js и опубликовать модель сущности javascript, в которой есть данные, которые мне нужно отправить обратно, как это сопоставляется с DTO в контроллере, где я публикую эту сущностьвернуться к?Это делается автоматически на основе имени свойств или есть что-то большее?

this.$http.post(this.apiUrl, this.entity).then(saveCallback, this.dataReadFailure);
   public virtual async Task<ActionResult> Post([FromBody] CreateUpdateDTO dto)   

Если у меня было что-то подобное выше, как сущность из почтового запроса отображается наDTO в контроллере?

1 Ответ

0 голосов
/ 11 февраля 2019

Ваш вопрос на самом деле не имеет смысла.Vue.js здесь не имеет ничего общего.Данные размещаются одним из двух способов: отправка в традиционной форме (элемент form и различные элементы input s, selects и / или textarea, содержащиеся в нем) или через AJAX.Как и в AJAX, тип содержимого тела сообщения полностью зависит от вас, поэтому он может быть x-www-form-urlencoded (такой же, как в обычной публикации формы), application/json (объект JSON), application/xml (документ XML) иличто-то совсем другое.

Независимо от средств, средство связывания модели используется для того, чтобы каким-либо образом создавать объекты C # из опубликованных данных на основе «привязок» (типов параметров действий и / или их типов элементов).Это делается с помощью этих привязок, а затем обновляется один или несколько типов и сопоставляется с данными поста, при необходимости приводя типы.Это немного глупо, я знаю.Проще говоря, вы хотите создать взаимно-однозначное соответствие между тем, что у вас есть в качестве параметров для вашего действия, и тем, что вы отправляете в посте.Другими словами, если вы привязываетесь к классу, в котором есть член с именем Foo, в отправляемом вами сообщении должно быть что-то с именем Foo.

Если вы публикуете JSON, вымы просто собираемся создать довольно точную копию класса C # в виде объекта JavaScript.Если вы отправляете публикацию традиционной формы (x-www-form-urlencoded), то вам нужно будет следовать соглашениям о связывании моделей, чтобы обеспечить правильное проецирование значений записей.Это означает, что создание цепочки с . (т. Е. Foo.Bar будет соответствовать элементу Bar типа свойства Foo), а списки обрабатываются с помощью индексации (т. Е. ListPropery[N], где N - элементиндекс.

...