目前我将此作为我的代码:
public ActionResult Search(SearchModel model)
{
string url = "http://10.0.2.31/testwebapi/api/data";
WebClient wc = new WebClient();
wc.QueryString.Add("forename", model.Forename);
wc.QueryString.Add("surname", model.Surname);
wc.QueryString.Add("caseid", model.CaseId);
wc.QueryString.Add("postcode", model.Postcode);
wc.QueryString.Add("telephone", model.Telephone);
wc.QueryString.Add("email", model.Email);
wc.QueryString.Add("title", model.Title);
var data = wc.UploadValues(url, "POST", wc.QueryString);
var responseString = Encoding.Default.GetString(data);
return PartialView("~/Views/Shared/SearchResults.cshtml", responseString);
}
public class RootObject
{
public int Caseid { get; set; }
public string Title { get; set; }
public string Forename { get; set; }
public string Surname { get; set; }
public string Postcode { get; set; }
public string Telephone { get; set; }
public string Email { get; set; }
public string DOB { get; set; }
public string Mobile { get; set; }
public string MaritalStatus { get; set; }
public string LoanPurpose { get; set; }
public bool CourtesyCall { get; set; }
public string isOpen { get; set; }
}
我不知道我哪里出错了我希望它能够从web api(返回一个json文件)中提取数据。然后我想要做的是将数据发送到我的部分视图,其中@foreach
语句将把它放入一个表但我似乎无法发送数据,它将它作为一个字符串插入我不知道为什么
这是它的回归方式:
@model string
@{
Layout = null;
}
@foreach(var Case in Model)
{
<p>@Case</p>
}
部分视图代码。
这就是我现在看来的部分:
@model IEnumerable<Savvy_CRM_MVC.Models.RootObject>
@{
Layout = null;
}
@foreach (var m in Model)
{
<p>@m</p>
}
当我遍历for each时,它给了我这个Savvy_CRM_MVC.Models.RootObject
答案 0 :(得分:1)
问题是您将模型绑定到原始JSON字符串。
您需要将JSON字符串反序列化为RootObject类,并使用RootObject作为视图的模型。
以下代码用户Newtonsoft JSON.net反序列化字符串;
var rootObjects = JsonConvert.DeserializeObject<RootObject[]>(responseString);
return PartialView("~/Views/Shared/SearchResults.cshtml", rootObjects);
并查看更改
@model IEnumerable<RootObject>
您还需要更改视图以显示模型的属性。