我正在尝试使用MVC在Web应用程序中创建一个表,该MVC从xml文件中读取信息。我正在尝试在将此列表发送回控制器之前对其进行排序,但我的orderby行上存在InvalidCastException。我做错了什么?
#info_text_startday:before{
position: absolute;
content: '';
z-index: 2;
background-color: black;
border: 3px solid white;
height: 300px;
width: 290px;
}
通过将orderby移动到select
之后修复它string xmlData = HttpContext.Current.Server.MapPath("~/App_Data/HighScores.xml");
DataSet ds = new DataSet();
ds.ReadXml(xmlData);
var scores = new List<ExternalScoreModel>();
try
{
scores = (from r in ds.Tables[0].AsEnumerable()
orderby r.Field<Int32>("Score") descending
select new ExternalScoreModel
{
Score = Convert.ToInt32(r[0]),
FirstName = r[1].ToString(),
LastName = r[2].ToString(),
}).ToList();
}
catch (IndexOutOfRangeException e)
{
//TODO
}
return scores;
答案 0 :(得分:0)
“得分”列中的数据很可能不是Int。仔细检查XML文件中的数据。值也可能丢失或为空,在这种情况下,您可以执行以下操作,并将分数指定为0或其他任何您想要的分数。
orderby r.Field<Int32?>("Score") == null ? 0 : r.Field<Int32>("Score") descending