我想使用Javascript View MVC5动态添加Html.DropDownListFor

时间:2017-10-02 10:03:51

标签: javascript c# asp.net-mvc asp.net-mvc-5

关于此问题的大多数问题只是附加一个简单的下拉列表Html。但是我试图动态添加(追加)Html.DropDownListFor帮助器,因为我需要从服务器获取选择列表。此代码的目标是将Judge.JudgeBoothMark列表提交给控制器。这是我的DropDownListFor Html助手:

<div id="BoothList">
    @Html.LabelFor(b => b.Booths)
    @Html.DropDownListFor(m => m.Judge.JudgeBoothMark[0].BoothId, new SelectList(Model.Booths, "Id", "BoothId"), "--Select Booth--", new { @class = "form-control" })
    @Html.ValidationMessageFor(b => b.Judge.JudgeBoothMark)
</div>

我使用此按钮添加下拉列表:

<button type="button" id="addBooth">Add Booth</button>

我想通过javascript动态添加这种hdown助手的下拉列表,因为 m.Judge.JudgeBoothMark [0] 计数的数字 0 会在我点击时加起来在按钮上。这是我的Javascript代码:

@section scripts{
<script>
    $(document).ready(function () {
        var count = 0;
        $("#addBooth").click(function() {
            count++;
            @{
                string dropdown = Html.DropDownListFor(m => m.Judge.JudgeBoothMark[1].BoothId,
                    new SelectList(Model.Booths, "Id", "BoothId"),
                    "--Select Booth--",
                    new {@class = "form-control"}).ToString();
            }

            var newBooth = '<br/>@Html.Raw(Ajax.JavaScriptStringEncode(dropdown))';
            $("#BoothList").append(newBooth);
        });
    });
</script>  }

请注意,我在此处使用的下拉列表中包含索引1 。我可以正常运行此代码,但索引号将只有1,不变。将提交/保存到我的控制器的数据是第一个和第二个添加的下拉列表[0,1]。

我无法增加数量,因为我不知道该怎么做。我已经尝试了很多方法(例如;尝试使用count变量,但找不到合适的方法),但似乎无法解决这个问题。

有什么方法可以解决这个问题吗?还是有更好的方法来实现我的目标吗?

提前致谢。

0 个答案:

没有答案