nel*_*ong 0 asp.net-mvc-3 knockout.js
我想从我的视图模型(以一种形式ko.observableArray)传递一个字符串数组到Asp.net MVC中的控制器.
由于它ko.observableArray是一个对象而不是数组,它不能简单地通过该$.ajax方法传递并在控制器端用作数组.
如何将数据传递ko.observableArray给控制器,以便在控制器端将其用作阵列?
Knockout有两个实用函数叫做ko.toJS和ko.toJSON.
var myPlainObject = ko.toJS(root) 将遍历您的对象并将任何observable转换为纯JavaScript属性.
var myJSONstring = ko.toJSON(root)会做同样的事情,然后JSON.stringify对结果做一个.
因此,您可以在viewModel上使用这些函数来获取纯JavaScript对象.
如果observableArray中的项不包含observable,那么你可以简单地通过执行来检索底层数组 myObservableArray()
更新:根据评论.这对我来说很好:
var viewModel = {
items: ko.observableArray(["one", "two", "three", "four"]),
sendItems: function() {
$.ajax({
type: "POST",
url: "@Url.Action("Test")",
data: ko.toJSON(viewModel.items),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data) {
alert(ko.toJSON(data));
}
}
});
}
};
Run Code Online (Sandbox Code Playgroud)
反对像这样的行动:
//just echo back data
public JsonResult Test(List<String> myList)
{
return Json(myList);
}
Run Code Online (Sandbox Code Playgroud)
这符合您的尝试吗?
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |