【发布时间】:2017-04-30 03:10:43
【问题描述】:
我正在开发一个小应用程序作为学习 MVC 和 ASP.NET 的练习,我对以下代码有疑问:
顺便说一句:对不起...我学习了 .NET,但没有学习 ASP,只学习了 Windows 窗体,而没有关于 MVC(作为一种实用的方法)。
这是我的观点:
@using (Html.BeginForm("userById", "Home", FormMethod.Post))
{
@Html.TextBoxFor(model => model.Id)
@Html.ValidationMessageFor(model => model.Id)
<button type="submit">Subscribe</button>
}
<h3>Value results</h3>
@Html.TextArea("results", new { rows = 40, columns = 80 })
我想用 Json 数据填充这个 TextArea(可以是另一个元素)
我的控制器:
[HttpPost]
public ActionResult userById()
{
string receivedData;
HttpWebRequest req = (HttpWebRequest)WebRequest
.Create("http://www.mocky.io/v2/5808862710000087232b75ac");
req.ContentType = "application/json";
var response = (HttpWebResponse)req.GetResponse();
using (var sr = new StreamReader(response.GetResponseStream()))
{
receivedData = sr.ReadToEnd();
}
var data = JsonConvert.DeserializeObject<RootObject>(receivedData);
List<User> userList = data.clients.ToList();
foreach (var item in userList)
{
ViewData["results"] = item.Id;
}
return View("Index");
}
我的想法是使用存储在名为 userList 的变量中的 Json 数据填充 TextArea,但 foreach 循环仅填充一个元素。 :( 有人可以帮帮我吗?
提前致谢!
【问题讨论】:
-
您想在文本区域中按原样显示完整的 json 数据吗?
-
是的,只显示一个字段,例如网格。每行一个
-
好吧,如果你只是想显示所有的json数据,那么你可以去掉foreach循环,避免json反序列化,而是
ViewData["results"] = receivedData;
标签: c# asp.net asp.net-mvc