簡體   English   中英

null一直從視圖傳遞到控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM