2012-05-20 91 views
0

我有一個視圖模型與外鍵到另一個模型,基於此,我想創建一個dropDownList,它會顯示選定的值名稱,並會給我所有其他的選擇,所以我可以改變它到我想要的。 這是我的創造形式:如何使用給定值填充MVC中的下拉列表

@using (Html.BeginForm()) { 
@Html.ValidationSummary(true, "Failed creating the feed") 
<fieldset> 
    <legend>FeedViewModel</legend> 

    <div class="editor-label"> 
     @Html.HiddenFor(model => model.FeedId) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.LinkUrl) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.LinkUrl) 
     @Html.ValidationMessageFor(model => model.LinkUrl) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.FolderId) 
    </div> 
    <div class="editor-field"> 

    </div> 

    <p> 
     <input type="submit" value="Create" /> 
    </p> 
</fieldset> 

我想創造的最後一個div的下拉列表,我已經有值構成我的模型。 我該怎麼做?

+0

您是否要求在上述模板語言中使用這種方法?如果是這樣,請提供更多詳細信息 – Ben

+0

我已經找到答案,但由於我的名譽點我不能發佈它 感謝大家 –

+0

請參閱我的DDL教程http://www.asp.net/mvc/tutorials/ javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc和http://blogs.msdn.com/b/rickandy/archive/2012/01/ 09/cascasding-dropdownlist-in-asp-net-mvc.aspx – RickAndMSFT

回答

0

你應該用戶Html.DropDownListFor擴展方法:

@Html.DropDownListFor(m => m.ImageId, new SelectListItem[] { 
      new SelectListItem { 
       Selected = true, 
       Text = "Text 1", 
       Value = "Fileld Value 1" 
      }, 
      new SelectListItem { 
       Selected = false, 
       Text = "Text 2", 
       Value = "Fileld Value 2" 
      } 
     }); 

當然,第二個參數的IEnumerable可以從數據庫,而不是硬編碼填充。

+0

感謝 爲了從數據庫中獲得它,我需要在我的視圖文件的頂部放置另一個@model嗎?我試圖做到這一點,但它弄亂了我的網頁。 –

+1

每個視圖只能有一個@model。您必須將包含選擇列表項的新屬性添加到現有模型中。或者,您可以使用ViewBag或ViewData將選擇列表項傳遞給視圖。 –