0

大家好如何通过两个或多个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>
4

1 回答 1

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,因为我不知道上下文。

另外,我会命名变量CitiesStreets因为它们是集合,而不仅仅是单个元素。

于 2012-09-13T09:04:25.367 回答