对于asp.net MVC 5我是比较新的,我试图显示xml文件的内容(位于我项目的内容文件夹中以方便访问)并显示内容简单的看法。来自我的控制器,模型类和视图的代码低于.....
我得到的错误如下
传递到字典中的模型项的类型为' System.Collections.Generic.List
1[System.Xml.Linq.XElement]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1 [XML_v1._0.Models.XML_details]'。
我的控制器,模型类和视图的代码如下.....
@model IEnumerable<XML_v1._0.Models.XML_details>
}
<head>
<title></title>
<style>
th {
font-size: 300%;
}
td {
font-size: 300%;
}
</style>
</head>
<h2>Line Status</h2>
<div>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Line)
</th>
<th>
@Html.DisplayNameFor(model => model.Status)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Line)
</td>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
</tr>
}
</table>
</div>
&#13;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using XML_v1._0.Models;
using System.Xml.Linq;
using System.Xml;
using System.Text;
using System.Collections;
using System.Dynamic;
namespace XML_v1._0.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
XDocument L_tube = XDocument.Load(@"C:\Users\070339\Documents\Visual Studio 2013\Projects\Learning and practice\XML v1.0\XML v1.0\Content\tube.xml");
var train = from s in L_tube.Descendants() select s;
var model = train.ToList();
return View(model);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml;
namespace XML_v1Models
{
public partial class XML_details
{
public XmlElement Line { get; set; }
public XmlElement Status { get; set; }
}
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
当你在控制器中执行return view()
时,你应该传递一个IEnumerable<XML_v1._0.Models.XML_details>
类型的变量。所以基本上你的控制器会
执行以下操作
IEnumerable<XML_v1._0.Models.XML_details> model = (from s in
L_tube.Descendants() select s);
然后执行
return View(model);