У меня есть это действие в моем приложении RESTful на MVC3:
[HttpPut]
public void Rest(ViewModel view_model, int id)
{
//doing something with view_model
}
Где ViewModel
class - это класс для передачи данных в / из клиентского Javascript (я не хочу передавать чистые сущности БД):
public class ViewModel
{
public ViewModel() //parameterless constructor, needed for accepting as parameter in action
{
}
public ViewModel(Model m)
{
id = m.ID;
Title = m.Title;
}
public int? id { get; set; }
private string _title;
public string Title
{
get
{
if (String.IsNullOrWhiteSpace(_title)) throw new Exception("Empty field");
return _title;
}
set
{
_title = value;
}
}
}
НО, когда я делаю запрос PUT с этими данными:
{ "id" : 7, "Title" : "Hello world!" }
Я получаю исключение "Пустое поле". Похоже, что-то пытается получить Свойство заголовка, даже до было установлено с входящим "Hello Мир!" данные.
Почему?
И где я могу получить некоторую информацию о том, как работает вся эта операция, то есть поиск объекта ViewModel
, указанного в качестве параметра действия, в реальном XHR-запросе.
Спасибо за ваши мысли.