2016-07-05 11 views
-1

DropDownListから与えられた入力に基づいてデータを表示したいと考えています。これを行う最善の方法は何でしょうか? DropDownListの値をコントローラに渡すにはどうすればよいですか?選択したドロップダウンリストの値に基づいてデータを取得する

ここに私のコントローラ

// GET: Define 
     public ActionResult Index() 
     { 
      IEnumerable<SelectListItem> Rooms = db.RM_ROOM.Select(c => new SelectListItem 
      { 
       Value = c.NAME, 
       Text = c.NAME 

      }); 
      ViewBag.NAME = Rooms; 

      IEnumerable<SelectListItem> item = db.RM_ENTITY_TYPE.Select(c => new SelectListItem 
      { 
       Value = c.ENTITY_NAME, 
       Text = c.ENTITY_NAME 

      }); 
      ViewBag.ENTITY_NAME = item; 
      //var rooms = db.RM_ROOM.ToList(); 

      return View();  
     } 

はここに私のインデックス

@using WebApplication1.Models; 

@{ 
    ViewBag.Title = "Index"; 
} 
<div class="container"> 
    <div class="row"> 
     <div class="col-sm-1"> 
      Room 
      @Html.DropDownList("NAME", "") 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-sm-2"> 
      Entity 
      @Html.DropDownList("ENTITY_NAME", "") 
     </div> 
    </div> 
</div> 

で、私の見解モデルはあなたが行う必要があります

public class DefineViewModelcs 
{ 
    public IEnumerable<SelectListItem> Rooms { get; set; } 

    public int ROOMID { get; set; } 
    public string NAME { get; set; } 
    public IEnumerable<SelectListItem> Entities { get; set; } 
    public int ENTITY_TYPEID { get; set; } 
    public string ENTITY_NAME { get; set; } 
    public int APPROVED_ROOM_STATEID { get; set; } 
    public bool Selected { get; set; } 
} 
+2

'WebApplication1.Models'の代わりに' @using WebApplication1.DefineViewModelcs.cs'を使用して、特定のビューモデルを指し示すようにしてください.Modelsフォルダ内にあれば 'WebApplication1 'になります。 DefineViewModelcs.cs' – prospector

+0

私は初めにそれを使用しましたが、ここではコピーしませんでした –

答えて

0

最初のものは、あなたの価値のからを渡すですさあなたのコントローラへのあなたのビュー。

EventListenerを使用して、ドロップダウンメニューをフォームにラップすることで、コントローラアクションを呼び出すドロップダウンメニューの変更を検出できます。

@using(Html.BeginForm("ActionName","ControllerName")) 
    { 
     @Html.DropDownList("IdOfDropDown", 
          "YourListToDisplayInsideTheMenu", 
          new { onchange = “$(this.form).submit();”} 
    } 

コントローラは入力パラメータを受け入れる必要があります。 次に、これらの値を使用してデータベース内の検索条件を絞り込む必要があります。

最後にすべきことは、検索結果を表示することです。

public ActionResult Filter(int id) 
     { 
      //Do your search here and return a list to the view, example: 
      Room room = db.RM_ROOM.Find(r => r.ROOMID == id) 

      return View(room); 

      //this will return a single room from your database 
     } 

は、私はあなたのモデルがどのように連携するかを100%わからないとどのようにそれらが定義されていますが、私はこれがあなたの問題への理想的な解決策を見つけることにあなたの方法で得ることができます願っています。

関連する問題