【问题标题】:Dynamically creating a select list from a collection in my model从我的模型中的集合中动态创建选择列表
【发布时间】:2013-05-26 01:31:20
【问题描述】:

我认为这是:

<script type="text/javascript" language="javascript">

    $(document).ready(function () {
        $('a.create').click(function () {
            // create dropdown, insert in span
        })
    });

</script>

<a class='create' href='#'>Click</a>
<span></span>

在我的控制器方法中,我传递了一个应该填充选择列表的集合,并且可以在我的视图中使用@Model.Agencies 进行访问。

我正在尝试从这里 (How to create dropdown list dynamically using jQuery?) 遵循解决方案,但我不知道如何从我的模型集合中创建一个数组。

【问题讨论】:

    标签: c# jquery asp.net asp.net-mvc razor


    【解决方案1】:

    您基本上只需要填充 JavaScript 数据数组。这将需要您将值注入到数组中。

    外部var data = { 和foreach 循环根据@Model.Agencies 生成值。由于我不知道您的Agencies 列表是如何定义的,所以我只是猜测,IdName

    var data = {
         @foreach(var agency in Model.Agencies)
         {
           <text>'</text>agency.Id<text>': '</text>agency.Name<text>,</text>
         }    
    }
    

    你可能不得不玩这些标签。

    【讨论】:

      【解决方案2】:

      由于您使用的是 MVC,因此我可以想到其他 2 种方法来执行此操作。

      首先是使用HTML Helper函数@Html.DropDownList()@Html.DropDownList。这是最简单的方法,它还会将所选选项的值属性提交回您的视图模型。要使用这些函数,您需要将列表设为 SelectList 或 SelectListItems 列表。

      第二种方法是使用扩展 html 助手。这需要更多的努力,但如果您需要向生成的 html 添加自定义属性,则可能需要这样做。

      【讨论】:

        【解决方案3】:

        如果你只想创建 Dropdown,你可以这样创建

              @Html.DropDownListFor(x => x.AgencyId,
                new SelectList(Model.Agencies, dataTextField: "AgencyName", dataValueField: "FinancialYearId"))
        

        您将在 AgencyId 中获得下拉选择的值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-15
          • 1970-01-01
          相关资源
          最近更新 更多