繁体   English   中英

ASP.NET MVC将动态Json数据传递到模型中以在部分视图中返回

[英]ASP.NET MVC Pass Dynamic Json Data into Model to return in Partial View

我正在研究ASP.NET MVC项目,并且有一个控制器,可以从外部Web API获取JSON数据。 现在,我想反序列化此JSON数据并将其放入一个模型中,该模型最终将传递到Partial View中。

JSON数据:

{
"results":[
{
    "name":"Company A",
    "providerName":"Company Provider A"
...(More Data Below)

控制器:

[HttpGet]
[Route("company-info/companyinfogetapidata")]
[AllowAnonymous]
public ActionResult CompanyInfoGetApiData(string name, int CompanyCode, string city, string state, int zip)
    {

        /* Json Data is fetched properly */

        var json = request.Result.Content.ReadAsStringAsync().Result; 

        JObject o = JObject.Parse(json);

        JToken ApiData = o["results"];

       // Now I want to pass the JSON data into my model

        CompanyResultsModel getfetcheddata = new CompanyResultsModel();

       // I tried using this method below but it's not working properly

        getfetcheddata = Newtonsoft.Json.JsonConvert.DeserializeObject<CompanyResultsModel>(json);

       // Pass the Model containing into the PartialView Result
        return PartialView(@"~/Views/Shared/companies/_companyResults.cshtml", getfetcheddata);

    }

模型:

public class CompanyResultsModel
{
    public string companyName { get; set; }
    public string companyProvider { get; set; }
}

视图:

@model Companies.CompanyResultsModel

<p>@Model.companyName</p>
<p>@Model.companyProvider</p>

将JSON数据传递到模型后,如果我在上面使用此方法在视图中显示数据,它将正确返回我的所有数据吗?

任何帮助是极大的赞赏!

您收到的json与您的CompanyResultsModel不匹配。 它确实与包含名称为results的属性的模型匹配,该属性是CompanyResultsModel的集合。

创建以下模型

public class JsonResultModel
{
    public IEnumerable<CompanyResultsModel> Results { get; set; }
}

并在控制器中

JsonResultModel model = JsonConvert.DeserializeObject<JsonResultModel>(json);

并且如果您只想将第一个CompanyResultsModel返回到视图

return PartialView("_companyResults", model.Results.FirstOrDefault());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM