これらのメソッドをサービスレイヤーに保持し、入力要件に基づいて呼び出します。アクションメソッドに渡されたパラメータを確認してください。
public ActionResult List(string regionName,string status)
{
List<Customer> customerList=new List<Customer>();
if((!String.IsNullOrEmpty(regionName)) && (!String.IsNullOrEmpty(status)))
{
customerList=CustomerService.GetCustomersForRegionStatus(regionName,status);
//List all Customers
}
else if(!String.IsNullOrEmpty(regionName))
{
customerList=CustomerService.GetCustomersForRegion(regionName);
}
else if(!String.IsNullOrEmpty(status))
{
customerList=CustomerService.GetCustomersForStatus(status);
}
else
{
customerList=CustomerService.GetAllCustomers();
}
return View(customerList);
}
そして、ビューはCustomerオブジェクトのコレクションにバインドされます
@model IList<Customer>
@foreach(var cust in Model)
{
<p>@cust.Name</p>
}
GetCustomersForRegionStatus
、GetCustomersForRegion
およびメソッドGetAllCustomers
が顧客オブジェクトのリストを返し、内部的に別のDBアクセスメソッドを呼び出して、渡されたパラメーターに基づいてフィルター処理されたデータを取得するとします。
これらのURLリクエストは、異なる結果をもたらすようになりました。
yourcontrollername/list
yourcontrollername/list?regionName=someregion
yourcontrollername/list?status=elite
yourcontrollername/list?regionName=someregion&status=elite