2016-01-13 113 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”})'' –