#javascript #c# #.net #vue.js #asp.net-core
#javascript #c# #.net #vue.js #asp.net-ядро
Вопрос:
когда я делаю POST-запрос из своего интерфейса (vue.js ) к asp.net веб-API (с использованием .net CORE), привязка модели показывает значение null при использовании сложного типа в методе контроллера, когда я отправляю запрос объекта json напрямую, но когда я преобразую json в строку json во внешнем интерфейсеи отправьте его с одной переменной, запрос работает.
Мой запрос от vue.js .
let data = JSON.stringify({"name":"myname","phone":"555555"});
var config = {
method: 'post',
url: 'http://localhost:4003/api/Controller/Request',
headers: {
'Content-Type': 'application/json'
},
data : data
};
Как вы можете видеть выше, мне нужно преобразовать его в строку, а затем отправить строку json в одной переменной. (это работает)
Но если я отправлю запрос как просто прямое необработанное тело json, сложная модель покажет все null
значения
axios.post(http://localhost:4003/api/Controller/Request, {
"name": "myname",
"phone": "5555555"
}, {
headers: {
'Content-Type': 'application/json'
}
});
мой метод для моего контроллера выглядит следующим образом
public async Task<IActionResult> Post([FromBody] NameModel input)
и DTO NameModel является
public class NameModel
{
public string name { get;set; }
public string phone { get; set; }
}
Теперь мои вопросы: почему привязка модели не отображает имена свойств непосредственно в необработанном запросе? поскольку чтение документов предполагается, что это происходит автоматически при использовании сложного типа
кроме того, как происходит сопоставление, когда я отправляю только одну переменную data
из интерфейса, что-то происходит в startup.cs
файле сервисов Iconfigure
?
Комментарии:
1. Возможно, вы захотите использовать
{name: "myname",phone: "5555555"}
2. Привет, да, я тоже это пробовал.
3. Вокруг URL-адреса нет кавычек
axios.post(http://localhost:4003/api/Controller/Request
.4. @PHPNoob вам нужно упорядочить данные во втором примере.
5. если формат передаваемых данных не соответствует ожидаемой кодировке, он не будет привязываться. Именно так это и было задумано.