Json 将 null 传递给控制器

Posted

技术标签:

【中文标题】Json 将 null 传递给控制器【英文标题】:Json pass null to controller 【发布时间】:2016-06-02 19:10:57 【问题描述】:

控制器总是为空。为什么?如何解决这个问题?

控制器:

[HttpPost]
public JsonResult Test(List<Employee> myList)

    return Json(myList);

Index.cshtml

@
ViewBag.Title = "Index";


<h2>Index</h2>

<script src="~/Scripts/knockout-2.2.0.js"></script>

<button data-bind="click: sendItems">Send</button>


<script type="text/javascript">

function MyViewModel() 
    items = ko.observableArray([ name: 'Jhon', year: '1950' ,  name: 'Nick', year: '1960' ,  name: 'David', year: '1970' ]);
    sendItems= function() 
        $.ajax(  
            type: "POST",
            url: "@Url.Action("Test")",
            data:JSON.stringify(items),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) 
            if (data) 
                alert(ko.toJSON(data));
            
        
    );



ko.applyBindings(new MyViewModel());
</script>

型号:

public class Employee

    public string name  get; set; 

    public string year  get; set; 

【问题讨论】:

如果您希望itemssendItems 成为您的视图模型的属性,您需要在构造函数中将它们称为this.itemsthis.sendItems。不过,请注意 sendItems 函数中的 this 【参考方案1】:

您忘记将您的 items 对象称为可观察对象。

data:JSON.stringify(items)

应该是:

data:JSON.stringify(items())

【讨论】:

以上是关于Json 将 null 传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象类型的 json 数组传递给 MVC 控制器类

将JSON数组从javascript传递给spring mvc控制器

如何从ajax将多个json数组传递给控制器​​?

通过 AJAX 调用将 JSON 对象列表传递给控制器

Codeigniter - 使用 json 将单个查询结果传递给控制器​​ - 如果存在

如何使用 json 将复杂类型传递给 ASP.NET MVC 控制器