0

みなさん、こんにちは。2つ以上の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 に答える