У меня есть: ПРОСМОТР
<script type="text/javascript">
function postData() {
var urlact = '@Url.Action("createDoc")';
var model = '@Html.Raw(Json.Encode(Model))';
alert(model);
$.ajax({
data: stringify(model),
type: "POST",
url: urlact,
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
window.location.href = '@Url.Action("CreateWordprocessingDocument","Movies")'
}
});
}
</script>
Контроллер
[HttpPost]
public void createDoc(string mov)
{
var movies = new JavaScriptSerializer().Deserialize<IEnumerable<Movie>>(mov);
//using movies...
}
Модель
//[Serializable]
public class Movie
{
//Added Data Annotations for Title & Genre
public int ID { get; set; }
[Required(ErrorMessage = "Insert name")]
public string Title { get; set; }
[DataType(DataType.Date)]
public DateTime ReleaseDate { get; set; }
[Required(ErrorMessage = "Inserist genre")]
public string Genre { get; set; }
[DataType(DataType.Currency)]
public decimal Price { get; set; }
}
Почему, когда я отправляю строковые данные из представления (через функцию публикации Ajax) в контроллер (createDoc), он перестает вызывать исключение ArgumentNullException (кажется, что переданная модель пуста)? Любое обходное решение/решение?
Примечание: без упорядочивания модели все работает, но я пытаюсь упорядочить ее, потому что у меня есть некоторые проблемы с форматом DateTime.
Примечание/2. Я также пытался заменить string mov во входных параметрах действия Controller на IEnumerable Movies, но это тоже не сработало.