IEnumerable<Addresses> AddressSet1=myServices.GetAddresses(LocationId1);
IEnumerable<Addresses> AddressSet2=myServices.GetAddresses(LocationId2);
我想合并以上两个AddressSets
我试过IEnumerable<Addresses> AllAddresses=AddressSet1.Concat(AddressSet2)
但是在此之后,当我尝试在我的 Razor View 上访问 IEnumerable AllAddresses 中的项目时
@if(!myHelper.IsNullorEmpty(model.AllAddresses )
{
@Html.EditorFor(model => model.AllAddresses )
}
我收到错误 - 路径中存在非法字符。有什么建议可以确定此错误的原因吗?
如果我尝试在没有 Concat 的情况下运行我的页面,我可以看到页面上显示的 AddressSet1/AddressSet2 中的记录。但是当我尝试将两者组合起来形成 I Enumerable AllAddresses 时,它会抛出错误,请帮助
下面粘贴的是我的编辑器模板
@model MyServiceRole.Models.Addresses
@{
ViewBag.Title = "All addresses Items";
}
<table>
<tr>
<td>
<span>Index</span>
</td>
<td>
</tr>
<tr>
<td>Address XID</td>
<td>
@Html.EditorFor(model => model.AddressID)
</td>
</tr>
<tr>
<td>Title</td>
<td>
@Html.EditorFor(model => model.Title)
</td>
</tr>
<tr>
<td>Description</td>
<td>
@Html.EditorFor(model => model.Description)
</td>
</tr>
<tr>
<td>Image URL</td>
<td>
@Html.EditorFor(model => model.Photo.URL)
</td>
</tr>
</table>
最佳答案
我测试了您的问题并遇到了同样的问题。
List<string> a = new List<string>{ "a" };
List<string> b = new List<string>{ "b" };
IEnumerable<string> concat = a.Concat<string>(b);
foreach(string s in concat) { } // this works
return View(concat);
查看中:
@model IEnumerable<string>
@foreach(string s in Model) //This blows up
{
}
@Html.EditorFor(m => Model) //Also blows up
老实说,您似乎无法使用模板或枚举
System.Linq.Enumerable.ConcatIterator<T>
Concat
在 View 中创建的类。这看起来像是一个错误。
无论如何添加 .ToList()
可以解决您的问题。
return View(concat.ToList());
关于asp.net-mvc-3 - 追加两个 IEnumerable 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555410/