我正在 ASP.NET 中构建一个 MVC 应用程序。在我的索引控制器中,我正在调用一个 API,获取数据并将它们传递给视图。这很好用,我可以毫无问题地将数据返回到我的视图中。
public ActionResult Index()
{
Base model = null;
var client = new HttpClient();
var task =
client.GetAsync(
"http://example.api.com/users/john/profile")
.ContinueWith((taskwithresponse) =>
{
var response = taskwithresponse.Result;
var readtask = response.Content.ReadAsAsync<Base>();
readtask.Wait();
model = readtask.Result;
});
task.Wait();
return View(model);
}
我的模型如下:
public class Base
{
public Data data { get; set; }
}
public class Data
{
public Profile profile { get; set; }
public Credit credit { get; set; }
}
public class Profile
{
public String firstname { get; set; }
public String lastname { get; set; }
}
public class Credit
{
public int amount { get; set; }
public string balance { get; set; }
}
API 以这种格式返回数据:
{
"data": {
"profile": {
"firstname": "John,
"lastname": "Newman",
},
"credit": {
"amount": 30,
"neverbought" : false
}
}
}
我现在想要实现的是为返回的数据添加更多属性。例如,我想将一个 state 属性添加到 credit,它将根据 amount 和 neverbought 属性计算。但现在让我们假设 credit.state 将始终为“lowCredit”。
所以我所做的是添加 Credit.state = "neverBought"; 在将数据发送到视图之前到我的控制器。然后我得到了一些错误,我的 Credit 类不包含状态定义。我将状态属性添加到我的信用模型中,但随后我得到“非静态字段、方法或属性需要对象引用。
这是我使用的代码:
task.Wait();
model.credit.state = "lowCredit";
return View(model);
我做错了什么,我应该怎么做才能解决问题?