2013-11-26 34 views
0

我必须使用jQuery.getJSON检索一些数据并调用一个API。由于我不得不使用数据库的项目列表,所以我强制每个API,在Global.asax中写入一些行,以Json格式返回对象并排除Xml。Knockout - 获取字符串时,我得到[对象对象]

但我有这个问题,当我试图通过getJSON获取string
我想这个函数无法识别“简单”的字符串,因为它期待的是一个json格式。
如果我的猜测是正确的,如何从api中检索字符串?

这是服务器端的代码,或API操作:

public string Get(string userId, string dateStr) 
    { 
     //item = get from a database 
     return item.Value; 
    } 

这是客户端函数调用上述API:

function GetValue(ui, ds) { 
     var self = this; 
     var jsko = jQuery.noConflict(); 
     var baseUri = "http://localhost:8090/api/"; 
     self.val= jsko.getJSON(baseUri + "get/day/?userId=" + ui + "&dateStr=" + ds); 

     alert(self.val); 
    }; 

注1:I我只报告了导致问题的代码行。
注2:由于路由设置,我正在寻址的网址是正确的。
注3:Get()功能势必会以这种方式点击一个按钮:

<button data-bind="click: GetValue.bind($data, $parent.UserId, $parent.dateStr)">get</button> 
+0

您可以发布创建此行为的服务器和客户端代码吗? – Damien

回答

0

如果你希望从使用jQuery AJAX与服务器的纯文本,您需要设置正确的属性数据类型:dataType: "text"。 默认的getJSON方法下一个选项,期待JSON:

$.ajax({ 
    dataType: "json", 
    url: url, 
    data: data, 
    success: success 
}); 

如果我正确理解你的问题,试图改变数据类型为“文本”。

+0

我会试试这种方式,如果它能正常工作,我会让你知道 – krvl