asp.net-mvc-3 - 追加两个 IEnumerable 项

标签 asp.net-mvc-3 c#-4.0 razor

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/

相关文章:

c# - 使用 JQuery 重新加载部分 View

javascript - 作为就业申请的一部分,在 c# MVC3(非托管)中申请的书面签名

Jquery datepicker 采用美国日期格式进行验证

c#-4.0 - 在加载C#时将嵌入式资源.rtf文件加载到richtextbox中

javascript - 使用 toastr.js 时 toastr 未定义

javascript - 添加更改已保存的 Javascript 弹出窗口

asp.net-mvc - Azure 网站中的 404 处理

c# - 为什么 C# 编译器不使用动态参数检查调用站点方法的 "staticness"?

c# - Windows 中挂起/恢复时套接字会发生什么

c# - 使用带有 Razor 语法的 knockout 绑定(bind)