[英]null keeps being passed from view to controller
我已經嘗試了我在stackoverlfow上已經可以找到的所有解決方案,並按照此處的說明重新開始https://stick2basic.wordpress.com/2013/04/14/how-to-pass-model-from-view-到使用jQuery的控制器/
每次觸發ajax調用時,它將null傳遞給控制器
*修正拼寫錯誤,問題仍然存在
模型
public class DateModel
{
public DateTime date { get; set; }
}
的JavaScript
$(document).ready(function () {
$("#jqxdatetimeinput").jqxDateTimeInput({ width: '250px', height: '25px' });
$("#jqxbutton").jqxButton({ width: '150', height: '25' });
$("#jqxbutton").on('click', function () {
var dateSelected = $('#jqxdatetimeinput').jqxDateTimeInput('getDate');
alert(dateSelected);
var DateModel =
{
"date": dateSelected
};
$.ajax({
url: 'home/submitDate/',
data: JSON.stringify(DateModel),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
}
});
});
});
控制者
public class HomeController : Controller
{
public IActionResult Index()
{
DateModel selectionDate = new DateModel();
return View();
}
public JsonResult submitDate(DateModel selectionDate)
{
return Json(selectionDate.date);
}
}
您不需要使用JSON.stringify
。 由於它是一個簡單的對象,因此可以按原樣傳遞它。 模型綁定將起作用。
$.ajax({
url: 'home/submitDate/',
data: DateModel,
type: 'POST',
success: function (data) {
alert(data);
}
});
或者,如果要發送js對象的Json簡化版本,則需要通過指定contentType屬性值來告訴服務器要發送的數據類型。 你錯了! 修正contentType
的拼寫錯誤! 值
$.ajax({
url: '@Url.Action("submitDate")',
data: JSON.stringify(DateModel),
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
}
});
這是您的contentType參數上的錯字嗎?
contentType: 'aplication/json; charset=utf-8',
應該是
contentType: 'application/json; charset=utf-8',
問題是日期格式。 我能夠使用IE調試,並看到JQ窗口小部件以DateTime無法處理的意外方式傳遞日期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.