如何使用来自 C# API JSON 的数据在 C# MVC 视图模型中填充我的模型?
How do I populate my model in C# MVC view model with data from C# API JSON?
我希望能够从任何地方访问我的数据,所以我制作了一个 c# 数据 API,returns json 用于获取,接受 json 用于帖子.所有方法都将 HTTPResponseMessage 用作 return 类型,以便我可以发回适当的响应。
在 jquery ajax 中,它使用起来很简单,而且效果很好,但是当我尝试使用 c# mvc 时,我完全不知道从哪里以及如何获取数据 return从我的 API 编辑到数据模型中。
我尝试在我的 viewModel 中使用它。它得到了数据,然后呢
static public object GetProfile()
{
string url = "http://localhost:50121/api/Profile/1";
var client = new WebClient();
var content = client.DownloadString(url);
var serializer = new JavaScriptSerializer();
var jsonContent = serializer.Deserialize<object>(content);
return jsonContent;
}
public readonly object d = GetProfile();
抱歉,如果我发错了,我没有在这里问太多问题。
我只想用 json return 调用 api 填充我的模型。
这一行:
var jsonContent = serializer.Deserialize<object>(content);
应改为:
var jsonContent = serializer.Deserialize<YourModelClass>(content);
其中 YourModelClass
是您要反序列化的模型。
直接反序列化 json 到您的模型 class(本例中为 ModelClass
,因为您没有提供模型 class 定义)。
using Newtonsoft.Json;
static public ModelClass GetProfile()
{
string url = "http://localhost:50121/api/Profile/1";
var client = new WebClient();
//object serialised as json string
var content = client.DownloadString(url);
//object deserialised as ModelClass
var model = JsonConvert.DeserializeObject<ModelClass>(json);
return model;
}
我希望能够从任何地方访问我的数据,所以我制作了一个 c# 数据 API,returns json 用于获取,接受 json 用于帖子.所有方法都将 HTTPResponseMessage 用作 return 类型,以便我可以发回适当的响应。
在 jquery ajax 中,它使用起来很简单,而且效果很好,但是当我尝试使用 c# mvc 时,我完全不知道从哪里以及如何获取数据 return从我的 API 编辑到数据模型中。
我尝试在我的 viewModel 中使用它。它得到了数据,然后呢
static public object GetProfile()
{
string url = "http://localhost:50121/api/Profile/1";
var client = new WebClient();
var content = client.DownloadString(url);
var serializer = new JavaScriptSerializer();
var jsonContent = serializer.Deserialize<object>(content);
return jsonContent;
}
public readonly object d = GetProfile();
抱歉,如果我发错了,我没有在这里问太多问题。
我只想用 json return 调用 api 填充我的模型。
这一行:
var jsonContent = serializer.Deserialize<object>(content);
应改为:
var jsonContent = serializer.Deserialize<YourModelClass>(content);
其中 YourModelClass
是您要反序列化的模型。
直接反序列化 json 到您的模型 class(本例中为 ModelClass
,因为您没有提供模型 class 定义)。
using Newtonsoft.Json;
static public ModelClass GetProfile()
{
string url = "http://localhost:50121/api/Profile/1";
var client = new WebClient();
//object serialised as json string
var content = client.DownloadString(url);
//object deserialised as ModelClass
var model = JsonConvert.DeserializeObject<ModelClass>(json);
return model;
}