public class DisplaceModel
{
public string Name { get; set; }
public string Address { get; set; }
public string Type { get; set; }
public string Rating { get; set; }
public string PhotoReference { get; set; }
public int Width { get; set; }
public int Height { get; set; }
}
public class DisplaceModelInformation
{
public List<DisplaceModel> Dispaylist { get; set; }
public DisplaceModelInformation()
{
Dispaylist = new List<DisplaceModel>();
}
}
var Display = new DisplaceModelInformation();
XElement generalElement = xdoc1.Element("PlaceSearchResponse");
Display.Dispaylist = (from c in xdoc1.Descendants("result")
select new DisplaceModel()
{
Name = Convert.ToString(c.Element("name").Value),
Address = Convert.ToString(c.Element("vicinity").Value),
Type = keyword,
Rating = (c.Element("rating") != null ? Convert.ToString(c.Element("rating").Value) :null),
PhotoReference = (c.Element("photo") != null ? Convert.ToString(c.Element("photo").Element("photo_reference").Value) : null),
Width = (c.Element("photo") != null ? Convert.ToInt16(c.Element("photo").Element("width").Value) : 0),
Height = (c.Element("photo") != null ? Convert.ToInt16(c.Element("photo").Element("height").Value) : 0)
}).ToList<DisplaceModel>();
return View(Display);
现在我尝试显示我要查看的对象列表,我试过但我真的不知道如何在mvc视图(cshtml)文件中显示
@model IEnumerable<FindLocation.Models.DisplaceModelInformation>
@using (Html.BeginForm())
{
<table>
<tbody>
<tr>
<th>NAME</th>
<th>ADDRESS</th>
<th>RATING</th>
</tr>
@foreach (var element in Model)
{
if (element.Dispaylist.Count > 0 )
{
<tr>
<@*td>@element.Dispaylist from c </td>
<td>@Display.Address</td>
<td>@Display.Rating</td>*@
</tr>
}
}
</tbody>
</table>
我是UI的新手,我尝试提取对象列表,但我不知道如何列出对象。所以请帮助我......并感谢您的帮助
答案 0 :(得分:0)
部分问题可能来自于您从控制器(DisplaceModelInformation
)传递给视图的内容与视图本身中的@model
定义之间的类型差异({{1} })。改变一个以匹配另一个应该有帮助。
我认为你对IEnumerable<DisplaceModelInformation>
有正确的想法。如果您的模型是@foreach
,则需要首先迭代该集合,然后在另一个内循环中迭代IEnumerable
集合。
以下问题的答案似乎有一些很好的例子,说明你要完成的任务: Foreach in a Foreach in MVC View
答案 1 :(得分:0)
您的代码中存在两个问题:
在您的控制器中,您需要return View(new List<DisplaceModelInformation> { Display });
,因为您在视图中指定了IEnumerable模型:@model IEnumerable<FindLocation.Models.DisplaceModelInformation>
使用foreach
显示每个表格行:
@foreach (var element in Model)
{
if (element.Dispaylist.Count > 0)
{
foreach (var Display in element.Dispaylist)
{
<tr>
<td>@Display.Name</td>
<td>@Display.Address</td>
<td>@Display.Rating</td>
</tr>
}
}
}