2015-05-15 31 views
-1

我有一個值來自模型,以確定我是否處於創建模式或編輯模式......如果我處於編輯模式,我想將一個下拉列表的值設置爲上次保存的值。如果我在創建模式,我想我的下拉列表默認爲默認值....有條件地創建具有相同名稱的下拉列表

* .ASCX

<% if(Model.isCreate == true) 
    { 
     Html.DropDownList("myOptionListName", 
          new SelectList(ViewBag.MyOptions, "Id", "Name"), 
          Resources.Global.DefaultMenuItem, 
          new { style = "width:200px" }); 
    } 
    else 
    { 
     Html.DropDownList("myOptionListName", 
          new SelectList(ViewBag.MyOptions, "Id", "Name", 
          ViewBag.LastSavedOption), 
          new { style = "width:200px" }); 
    }%> 

如果我只使用一個或另一個沒有如果,在一個菜單隻在一個場景中工作...我需要使用「myOptionListName」作爲名稱,因爲我有其他的JavaScript引用此。就目前而言,上面的代碼不會導致任何下拉。

問:如何根據if檢查顯示菜單,但名稱相同?

+0

不需要你的if語句塊。如果'myOptionListName'的值與其中一個選項的值相匹配,那麼它將被選中,以便在控制器中設置該值。並學習使用視圖模型! –

回答

1

您可以根據您的表單模式創建您的選擇列表,然後將適當的選擇列表分配給您的控件。

<% var selectList = new SelectList(ViewBag.MyOptions, "Id", "Name"); 

    if(!Model.isCreate) 
    { 
     selectList = new SelectList(ViewBag.MyOptions, "Id", "Name", 
          ViewBag.LastSavedOption); 
    } 

    Html.DropDownList("myOptionListName", selectList , 
          new { style = "width:200px" }); 
    %> 
相關問題