2016-09-20 24 views
0

我已經嘗試了所有的解決方案,我可能已經找到stackoverlfow以及從這裏開始發現https://stick2basic.wordpress.com/2013/04/14/how-to-pass-model-from-view-to-controller-using-jquery/空不斷被從視圖傳遞給控制器​​

每當我再次觸發以下說明我的AJAX調用它傳遞空的控制器

*修正了拼寫錯誤,問題仍然出現

型號

public class DateModel 
    { 
     public DateTime date { get; set; } 
    } 

JAV aScript

$(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); 
     } 
    } 
+0

[MVC ajax發佈到控制器動作方法]可能的副本(http://stackoverflow.com/questions/19663762/mvc-ajax-post-to-controller-action-method) –

+0

不,我試圖通過一個複合材料,而不是參數,我試圖做你建議的帖子的對立面。我需要直接接收一個模型而不是直接參數,這是我的問題的一個簡單例子,我的模型在生產中相當大。 – Terry

回答

0

你並不需要使用JSON.stringify。由於它是一個簡單的對象,因此您可以按原樣傳遞它。模型綁定將起作用。

$.ajax({ 
      url: 'home/submitDate/', 
      data: DateModel, 
      type: 'POST',     
      success: function (data) { 
       alert(data); 
      } 
     }); 

,或者如果你想送您的JS對象的Json strinfified版本,你需要告訴什麼類型的數據,你通過指定contentType屬性值向服務器發送。你錯了!修復contentType中的錯字!值

$.ajax({ 
    url: '@Url.Action("submitDate")', 
    data: JSON.stringify(DateModel), 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
     alert(data); 
    } 
}); 
+0

感謝您的建議,但都未能解決問題。修復我的拼寫錯誤以及切換到您建議的代碼仍然發送​​NULL – Terry

0

這是您的contentType參數的拼寫錯誤嗎?

contentType: 'aplication/json; charset=utf-8', 

也許應該

contentType: 'application/json; charset=utf-8', 
+0

感謝您的建議,雖然拼寫錯誤沒有解決問題,我仍然收到null。 – Terry

0

的問題是日期格式。我能夠使用IE調試,並看到JQ Widgets以DateTime無法處理的意外方式傳遞日期。

相關問題