我通過AJAX調用向ASP.NET MVC項目中的控制器提取JSON數據。我能夠從Web API調用中獲取JSON數據。現在我想將這個JSON數據返回到我的AJAX調用中的success
函數,並將其傳遞給部分視圖,而不是使用jQuery靜態追加JSON數據。返回Ajax成功調用中的部分視圖調用Jeto數據
C#控制器:
[HttpGet]
[Route("company-info/companyinfogetapidata")]
[AllowAnonymous]
public ActionResult CompanyInfoGetApiData(string name, int CompanyCode, string city, string state, int zip)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("URL_BASE");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var request = client.GetAsync("URL_PATH");
var json = request.Result.Content.ReadAsStringAsync().Result;
JObject o = JObject.Parse(json);
JToken ApiData = o["results"];
// Here is where I want to insert pieces of the JSON data into the model and then pass it into the partial view
CompanyResultsModel getfetcheddata = new CompanyResultsModel();
getfetcheddata = Newtonsoft.Json.JsonConvert.DeserializeObject<CompanyResultsModel>(json);
return PartialView(@"~/Views/Shared/companies/_companyResults.cshtml", getfetcheddata);
}
編輯:我創建下面 的新模式CompanyResultsModel:
namespace Companies.Models
{
public class CompanyResultsModel
{
public string companyName { get; set; }
}
}
AJAX調用:
$.ajax({
type: "GET",
url:"../companyinfogetapidata",
dataType: "json",
data: {DATA HERE},
error:function(e){alert("nope"+e);},
success: function (xhr_request) {
var fetched_data = xhr_request["results"];
var i;
var iLength = fetched_data.length;
for (i = 0; i < iLength; i++) {
// This was the original jQuery way I was appending the JSON data
// $("#CompanyFinderResultsContainer").append("<p>Name: " + fetched_data[i].name + "</p>");
// I want to call a Partial View and Pass along the JSON data from this success function
// I am thinking of making a call like this
@Html.Partial("_CompanyFinderResults", Model);
}
}
});
我試着在控制器內創建一個模型來追加這個JSON數據,但我不太確定這是否是最好的方法。
任何幫助,非常感謝!
我想修改我的代碼,但我有與所述迴流管道'返回PartialView(@「_ CompanyFinderResults.cshtml」,模型)的問題;'在那裏我假設我想借此JSON數據並存儲到這個'Model'變量。 –
因此'Model'變量應該有您的'PartialView'需要創建您的'View'的模型。在你最初的'AJAX'部分,你有'@ Html.Partial(「_ CompanyFinderResults」,Model);'',這個'Model'變量指的是那個。 –
我實際上並沒有使用那行代碼,這只是我的一個建議。我真正想做的是從控制器中獲取解析的JSON數據並將其傳遞到partialView。 –