【问题标题】:Setting unique id for each element in a dropdownlistfor (MVC)为下拉列表中的每个元素设置唯一 ID(MVC)
【发布时间】:2016-05-10 08:54:07
【问题描述】:

我似乎不知道如何为SelectList 中的每个元素设置唯一ID(使用@Html.DropDownListFor)。当前视图中的 div 如下所示:

<div id="Courses">
    @Html.DropDownListFor(c => c.Courses, new SelectList(Model.Courses, "CourseID", "Name"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
</div>

在浏览器中检查元素显示每个元素都有courseID 作为值,我希望每个元素都有这个 courseID 作为唯一 ID。仅供参考Model.Courses 包含我所有课程的可枚举。

为了完整起见,我想要这样做的原因是,我在与下拉列表相对应的部分视图中有一个 highChart,并且我的课程页面中有一个按钮,该按钮重定向到带有部分 div 的视图,并且加载给定课程的图表(使用课程页面中的 ID)。这工作正常,但我现在需要dropdownlist 在页面加载时显示该课程的名称,而现在它只是说'选择网络钓鱼活动'

感谢任何帮助或建议。

编辑:感谢罗里整理代码

【问题讨论】:

    标签: javascript c# jquery html razor


    【解决方案1】:

    如果您需要设置select 的默认值,您应该在控制器中设置模型的某种CourseId 属性,然后在视图中:

    @Html.DropDownListFor(c => c.CourseId, new SelectList(Model.Courses, "CourseID", "Name"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
    

    DropDownListFor helper 设置在页面加载时选择的这个值。

    【讨论】:

    • 你能展示你的 ViewModel 和控制器吗?然后我编辑我的问题,向您展示如何更改它们
    • 我已经解决了这个问题,但忘记更新线程了。谢谢你:)
    【解决方案2】:

    在模型或控制器中,您正在填充 Course 属性,您将 CourseId 设置为唯一编号。

    设置属性的方式真的很重要吗?

    foreach(var course in DataSource.CourseTitles)
       viewModel.Courses.Add(new Course(){ CourseId = i++, Name = course})
    

    【讨论】:

      【解决方案3】:

      teo van kot 的答案是正确的 (+1)。

      如果您不需要为帖子绑定 CourseId。你可以使用SelectListconstructor:-

      public SelectList(
          IEnumerable items,
          string dataValueField,
          string dataTextField,
          Object selectedValue
      )
      

      像这样:-

      <div id="Courses">
          @Html.DropDownListFor(c => c.Courses, new SelectList(Model.Courses, "CourseID", "Name", "COURSEID"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
      </div>
      

      【讨论】:

      • 这看起来很有希望,但在尝试并在浏览器中检查之后,我看不到任何“COURSEID”部分的迹象。这是什么参考?我觉得我的名字可能有误。
      • 您需要将“COURSEID”替换为实际的课程 ID。这是您要设置的选项的值。
      猜你喜欢
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      相关资源
      最近更新 更多