Может кто-нибудь, пожалуйста, обучить меня тому, почему у меня не может быть свойство JSON с тем же именем, что и параметр контроллера MVC? Я уверен, что я делаю тупую ошибку где-то, но вот сценарий:
предаю $ http.post на контроллер MVC
$ http.post метод:
return $http.post("/Api/Form/Create/Save/DraftForm/", {"Model":"test"});
MVC модель
public class FormViewModel
{
public string Model { get; set; }
}
MVC контроллер
[HttpPost, Route("Api/Form/Create/Save/DraftForm")
public ActionResult Create_Save_DraftForm(FormViewModel model)
{
....
}
К тому времени, когда someObj попадает на контроллер, он равен нулю.
Однако, если я изменю имя параметра в контроллере «модель» на что-то вроде «viewModel», он отлично работает.
[HttpPost, Route("Api/Form/Create/Save/DraftForm")
public ActionResult Create_Save_DraftForm(FormViewModel viewModel)
{
....
}
Как уже упоминалось Shyju, я могу также переименовать свойство «модель» в объекте JSON с другим именем, и он работает, а также:
public class FormViewModel
{
public string AnotherModel { get; set; }
}
return $http.post("/Api/Form/Create/Save/DraftForm/", {"AnotherModel":"test"});
Может быть ошибкой в связующем устройстве модели! Переименуйте свое свойство в определенное имя и оно будет работать (пример: CarModel) – Shyju
До сих пор это было мое решение. Это либо ошибка в связующем документе Model, либо я неправильно использую связующее устройство Model. Если бы я догадался, я бы сказал, что это последнее. –
Было упомянуто, что я могу попробовать добавить еще один уровень к объекту, но мне не повезло с этим. –