我有这个ApiController只从表中返回一列。
public IEnumerable<string> GetEmailConfig()
{
return dbContext.EmailConfig.Select(m => m.smtpHost).AsEnumerable();
}
我只需要返回smtpHost而不是数据库表中的其他字段。返回为 [smtp.host] 0:&#34; smtp.host&#34;
如何正确添加到我的骨干模型?目前,它出现在这样的属性中:
attributes: Object
0: "["
1: """
2: "s"
3: "m"
4: "t"
5: "p"
6: "."
7: "a"
8: "b"
9: "c"
10: "."
11: "d"
12: "e"
13: "f"
14: """
15: "]"
我想我必须序列化字符串,但不知道该怎么做或者问题是什么。有什么建议?
编辑: 我的模特
App.Models.EmailConfigModel = Backbone.Model.extend({
parse: function(response, option)
{
var smtpHost = "";
console.log('parsing smtp host');
$.each(response, function (index, val) {
smtpHost = smtpHost + val;
});
return { "smtpHost": smtpHost };
}
});
我还尝试了return{"attributeName": smtpHost };
,只是&#34;属性名称&#34;。没有工作。
这是我从索引页面获取的方式
App.emailconfig.fetch().then(function () {
new App.Views.EmailConfig({ collection: App.emailconfig });
});
这是我的收藏:
App.Collections.EmailConfig = Backbone.Collection.extend({
model: App.Models.EmailConfigModel,
url: 'api/EmailConfig',
});
答案 0 :(得分:1)
parse
。该函数传递原始响应对象,并应返回要在模型上设置的属性哈希
所以在你的模型中写一个像
这样的解析函数parse : function(response,option){
var mystr = "";
$.each($.parseJSON(response), function(index, val) {
mystr = mystr + val;
});
return {"attributenmae" : mystr};
}
答案 1 :(得分:0)
编写一个返回对象{attributeName:stringReturnedFromService}