【发布时间】:2014-10-15 14:27:04
【问题描述】:
我有一个 ASP.NET MVC 4 项目,它检索数据并使用 ko.mapping 将其注入到我的客户端 ViewModel 中,以便可以在 knockoutJS 中绑定:
$(document).ready(function () {
// Get the data from the server-side
var koModel = new MessageModel( [JSON-string] );
// Inject server-side model into the client-side viewModel
var viewModel = new MessageViewModel(koModel);
// Bind knockout
ko.applyBindings(viewModel);
});
// model loaded from the server-side
var MessageModel = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
}
// client-side data-bound viewModel
var MessageViewModel = function(koModel) {
var self = this;
self.data = koModel;
// Submit form
self.sendMessage = function () {
$.ajax({
url: 'http://services.mysite.net/api/Messaging',
type: 'POST',
data: self.data
});
}
}
其中一个属性是字符串。 JSON 看起来像这样:
"MyProperty": null
但是,当我 POST 到 WebAPI 2.0 服务时,Request 参数如下所示:
"MyProperty": "null"
当 WebAPI 接收到它时,它会将该字符串反序列化为“null”而不是 null。
[HttpPut]
async public Task<IHttpActionResult>
Put(int id, [FromBody]MessageModel model)
{
// model.MyProperty is now "null" instead of being a null value
【问题讨论】:
-
请添加您的 javascript 以将数据发布到 webapi 服务
-
我在使用 KnockoutJS 和表单提交的过程中添加了更详细的 JavaScript。
-
@Nexxas,嗨,你检查过答案了吗?成功了吗?
标签: asp.net-mvc serialization knockout.js asp.net-web-api knockout-mapping-plugin