[英]Parsing list of string to new json
使用.Net Nore C#MVC
我有以下代碼:
我的資料:
public IEnumerable<string> GetData(string id)
{
return _context.TableData
.Where(r => r.ID == id)
.Select (r => r.Name).ToList();
}
我的MVC控制器:
public IActionResult GetDDL(string id)
{
var result = _repo.GetData(id);
//Above gives me
//[0] = "United States"
//[1] = "United Kingdom"
var json = JsonConvert.SerializeObject(result);
//Above json convert gives me ["United States","United Kingdom"]
return Json(json);
}
上面的代碼確實返回了我Json,但我想知道如何創建新的JSON,使其返回我,如下所示:
[{"Text":"United States","Text":"United Kingdom"}]
基本上,我想將此綁定回我的下拉列表,該下拉列表需要JSON數組的“ Text”屬性。
public IActionResult GetDDL(string id)
{
var result = _repo.GetData(id);
var withProp = result.Select(x => new { Text = x });
var json = JsonConvert.SerializeObject(withProp);
return Json(json);
//Or shorter:
var result = _repo.GetData(id).Select(x => new { Text = x });
var json = JsonConvert.SerializeObject(result);
return Json(json);
}
您不能返回匿名類型,因此您應該創建一個包含數據的類,並使用該類從存儲庫中返回:
public class Data
{
public string Text { get; set; }
}
public IEnumerable<Data> GetData(string id)
{
return _context.TableData
.Where(r => r.ID == id)
.Select (r => new Data { Text = r.Name });
}
控制器中的用法保持不變,然后:
public IActionResult GetDDL(string id)
{
var result = _repo.GetData(id);
var json = JsonConvert.SerializeObject(result);
return Json(json);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.