我有: 查看
<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:我也尝试将Controller 操作的输入参数中的字符串 mov替换为IEnumerable movies,但它也不起作用。