2016-01-13 163 views
-2

我花了幾年的時間主要工作在經典的ASP,我終於試圖進入.net世界。我有多個需要幫助的項目。MVC下拉列表問題

1)創建視圖中有一個下拉菜單。現在它填充了表中的所有記錄,但只有其中一些應顯示。我有一個通常用於填充下拉列表的存儲過程,但不知道如何在代碼中更改它以使用該過程。對於該過程中的類顯示

namespace AMS_MVC.Models 
{ 
    using System; 

    public partial class usp_ListRoles_Result 
    { 
     public byte RoleID { get; set; } 
     public string RoleName { get; set; } 
    } 
} 

這裏是控制器有什麼,現在使用實體

ViewBag.RoleID = new SelectList(db.Roles, "RoleID", "RoleName"); 

2(由Visual Studio生成))我不想在列表中的第一個項目是默認情況下,我傾向於讓第一個項目顯示「Make Selection」並且沒有值。因此,管理用戶不會因爲忘記做出選擇而犯錯並指派錯誤的角色。

3)我需要在下拉菜單中添加一個onChange事件。根據所選角色,可能會顯示其他選項。例如,如果選擇了部門經理的角色,那麼它應該顯示部門的下拉列表,如果選擇了區域經理的角色,那麼它將顯示區域列表等。在一個選項中,位置部門經理應該同時顯示部門清單和地點清單。

在經典的asp中,onchange事件調用一個我寫的顯示正確隱藏div的javascript函數。

請人們,我一直在尋找許多不同的例子,現在在這個網站上以及其他人提供的谷歌和bing搜索,他們沒有幫助。如果你想要做的只是指向別人的問題,而不是我正在尋找的東西,那麼請不要提供鏈接,因爲它不能幫助我。

+1

閱讀一些「如何填充dropdowlist」mvc教程與HtmlHelper(這裏是一個例子http://stackoverflow.com/questions/20567364/asp-net-mvc-populate-dropdownlist),對於點3你可以做同樣的作爲「經典asp」。 – Logar314159

+0

該鏈接絕對沒有幫助我。 –

+0

對於項目1取決於您如何連接到數據源。對於第2項,請檢查http:// stackoverflow。COM /問題/ 16073464/ASP淨MVC-如何到添加佔位符換HTML的下拉列表。對於第3項,您可以按照http://stackoverflow.com/questions/25056508/onchange-event-for-html-dropdownlist或http://stackoverflow.com/questions/8973037/handling-onchange-event-in-html -dropdownlist-razor-mvc –

回答

1

在MVC中有從HtmlHelper類的DropDownListFor方法。只需用模型屬性使用它(必須是List<T>型)

@Html.DropDownListFor(m => m.Field, Model.List, new { @id = "id", @class = "css-class" }),其中m.Field是在你的模型,其中存儲選定值的屬性,Model.List是顯示的項目清單。也可以使用「經典asp」創建此文件。

1

謝謝。它回答了關於將onchange事件添加到列表的問題的第三部分。

original code 
@Html.DropDownList("RoleID", null, htmlAttributes: new { @class = "form-control" }) 

new code  
@Html.DropDownList("RoleID", null, htmlAttributes: new { @class = "form-control", @onchange="displayOptions(this.value)"}) 

對於部分2如何在列表我難倒

What dropdown shows in MVC

What I need the drop down to show for first option

也被傳統的ASP我不是那個意思asp.net我的開頭添加另一種選擇意味着ASP 3.0和它完全不同於asp.net。

+1

在MVC Helper對象中使用名爲「option string」的參數來指定默認(未選中)狀態。例如'@ Html.DropDownListFor(m => m.Field,Model.List,「Make a selection」,new {@id =「id」,@class =「css-class」})'' –