大家好,如何传递两个或多个IEnumerables列表来查看?这是我的动作控制器:
ServicesClient client = new ServicesClient();
client.ClientCredentials.UserName.UserName = "service_test";
client.ClientCredentials.UserName.Password = "..";
client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
ListCity[] city = client.GetCity();
ListStreet[] street = client.GetStreet(2);
return View(city);
我的观点:
model IEnumerable<ListCity>
@using icerik.EmlakServices
@{
Layout = "~/Views/Shared/Test.cshtml";
}
<select>
@foreach(var item in Model)
{
<option>@Html.DisplayFor(x => item.CityName)</option>
}
</select>
答案 0 :(得分:1)
在这种情况下,您必须创建一个ViewModel。所以像这样:
public class MyViewModel{
public ListCity[] City {get;set;}
public ListStreet[] Street {get;set;}
}
然后在你的控制器中:
var viewmodel = new MyViewModel{
City = client.GetCity(),
Street = client.GetStreet(2)
};
return View(viewModel);
然后在你看来:
model MyViewModel
然后,您可以在视图中获取Model.City
或Model.Street
的收藏品。
对于除基本情况之外的所有情况,您通常最终会为几乎所有视图创建一个ViewModel。因此,请正确命名,以便了解他们正在做什么。我在示例中称它为MyViewModel
,因为我不知道上下文。
另外,我会将变量命名为Cities
和Streets
,因为它们是集合,而不仅仅是单个元素。