【问题标题】:MVC drop down list questionsMVC 下拉列表问题
【发布时间】:2016-04-18 20:36:22
【问题描述】:

多年来,我主要从事经典 asp 工作,最终尝试进入 .net 世界。我有多项需要帮助。

1) 创建视图中有一个下拉菜单。现在它填充了表中的所有记录,但应该只显示其中的一些记录。我有一个通常用于填充下拉列表的存储过程,但不知道如何在代码中更改它以使用该过程。该过程的类显示

namespace AMS_MVC.Models
{
    using System;

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

这是控制器现在使用实体拥有的(由 Visual Studio 生成)

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

2) 我不希望列表中的第一项成为默认项,我更喜欢让第一项说“进行选择”并且没有值。因此,管理用户不会因为忘记选择而犯错并分配错误的角色。

3) 我需要在下拉列表中添加一个 onChange 事件。根据所选角色,可能会显示其他选项。例如,如果选择部门经理的角色,那么它应该显示一个部门的下拉列表,如果选择了地区经理的角色,那么它将显示一个地区列表等。在一个选项位置部门经理它应该同时显示部门列表和位置列表。

在经典 asp 中,onchange 事件调用我编写的显示正确隐藏 div 的 javascript 函数。

请大家,我已经在这个网站以及谷歌和必应搜索提供的其他网站上查看了一个星期以来的许多不同示例,但它们没有任何帮助。如果您只想指出其他人的问题回答了类似但不完全是我正在寻找的问题,那么请不要提供链接,因为它对我没有帮助。

【问题讨论】:

  • 阅读一些“如何使用 HtmlHelper 填充 dropdowlist”mvc 教程(这里是一个示例 stackoverflow.com/questions/20567364/…),对于第 3 点,您可以执行与“经典 asp”相同的操作。
  • 那个链接对我没有任何帮助。
  • 对于第 1 项,取决于您连接到数据源的方式。对于第 2 项,请检查 stackoverflow.com/questions/16073464/…。对于第 3 项,您可以关注 stackoverflow.com/questions/25056508/…stackoverflow.com/questions/8973037/…
  • 使用实体框架
  • @MirandaJohnson - 你很不高兴,因为你希望 ASP.NET MVC 像你以前的做事方式一样工作。它不是那样工作的。您将需要更多地了解 ASP.NET MVC 的工作方式,而这正是人们试图向您指出的。仅仅给你一个例子对你没有用,因为没有一个你需要什么的例子,你必须充分理解它才能适应一个例子。

标签: c# asp.net asp.net-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”来创建它

【讨论】:

    【解决方案2】:

    谢谢。这回答了我关于将 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 完全不同。

    【讨论】:

    • 您在 MVC Helper 对象中使用名为“选项字符串”的参数来指定默认(未选择)状态。例如@Html.DropDownListFor(m => m.Field, Model.List, "Make a selection", new { @id = "id", @class = "css-class" })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多