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;
【问题讨论】:
如果您希望items
和sendItems
成为您的视图模型的属性,您需要在构造函数中将它们称为this.items
和this.sendItems
。不过,请注意 sendItems
函数中的 this
。
【参考方案1】:
您忘记将您的 items
对象称为可观察对象。
data:JSON.stringify(items)
应该是:
data:JSON.stringify(items())
【讨论】:
以上是关于Json 将 null 传递给控制器的主要内容,如果未能解决你的问题,请参考以下文章
将JSON数组从javascript传递给spring mvc控制器