3
我有一個方法在一個web api控制器,從javascript(敲除)函數被調用。
public void SaveEmailTempage(EmailTemplateModel template)
{
var x = template.ToString();
...
上面的x變量只在那裏,所以我可以在控制器中設置一個斷點,它會被擊中。傳入的模板變量的所有屬性始終設置爲空,那就是問題 - 爲什麼?我不確定在$ .ajax調用中傳入什麼,數據參數。
在JavaScript中我有這個(下面)。在數據屬性中,我嘗試了self,this,ko.JS,ko.JSON - 每個都有self,this,$ data,$ root作爲輸入,並且我似乎沒有將值傳遞給它。在aspx中,我有一個帶有data-bind =「value:ko.toJSON($ root)」的textarea,它包含了我想發送給服務器的json。
function emailViewModel() {
var self = this;
//data
...
//operations
...
self.saveTemplate = function() {
$.ajax({
url: '/api/emailtemplate/',
type: 'POST',
data: ko.toJSON({template: self}),
contentType: 'application/json',
success: function (result) {
alert('success');//debug
},
error: function() { alert('fail');}//debug
});
}
return self;
}
您的'EmailTemplateModel'類和您的客戶端'emailViewModel'看起來是什麼樣子?你知道屬性名稱應該匹配嗎?理論上講,'data:ko.toJSON(self)'應該可以工作。 – nemesv 2013-02-09 08:59:54
謝謝 - 它們被命名爲相同,但我沒有在.net模型中定義的所有屬性,因爲它們確實不需要服務器端。將它們全部添加後,似乎已經解決了它。 – user1202839 2013-02-09 20:44:21