ASP.NET MVC 4如何将行添加到包含dropdownlistfor的表中

本文关键字:包含 dropdownlistfor 添加 MVC NET ASP | 更新日期: 2023-09-27 18:28:26

我有一个小表格作为表单的一部分。它在下拉列表旁边显示一个数字,用户可以选择与该数字对应的值。我希望允许用户使用向该表添加行,并能够根据需要分配任意多的值。我一整天都在谷歌上搜索,尝试了很多东西,但似乎没有什么适合我的情况。实现此功能的最佳方式是什么?

以下是我的视图中的代码,其中包含表和我的添加操作链接:

 <div class="form-group">
     @Html.LabelFor(m=>m.Part.PartConnectionTypes, new {@class = "control-label col-md-5"})
         <div class="col-md-7">
             <table class="table table-condensed table-striped table-bordered">
                 <thead>
                     <tr>
                         <td>Number</td>
                         <td>Value</td>
                     </tr>
                 </thead>
                 <tbody>
                     @{
                         for(var i = 0; i < Model.Part.PartConnectionTypes.Count; i++)
                         {
                             var count = i + 1;
                             <tr>
                                 <td>@count</td>
                                 <td>@Html.DropDownListFor(m => m.Part.PartConnectionTypes[i].ConnectionType, new SelectList(Model.ConnectsTo, "CodeId", "ValChar"), "", new { @class = "form-control" })</td>
                             </tr>
                          }
                      }
                  </tbody>
              </table>
              @Html.ActionLink("Add Connection", "AddNewPartConnection", "Home", new { id = "addConnection"})
          </div>

这是我的动作链接的控制器方法:

public ActionResult AddNewPartConnection(IndexViewModel model)
    {
        var newPartConnectionType = new PartConnectionType();
        model.Part.PartConnectionTypes.Add(newPartConnectionType);
        return View("Index", model);
    }

以及索引方法:

public ActionResult Index(string searchString)
    {
        var model = new IndexViewModel { Part = new Part() };
        model.Part.PartConnectionTypes.Add(new PartConnectionType());
        if (!String.IsNullOrEmpty(searchString))
        {
            model.Part = CoreLogic.GetPartByPartCode(searchString);
            if (model.Part == null)
            {
                model.Part = new Part();
                model.Part.PartConnectionTypes.Add(new PartConnectionType());
                ViewBag.SearchMessage = "That is not a current part";
            }
        }
        return View(model);
    }

我感谢任何人能提供的帮助。

ASP.NET MVC 4如何将行添加到包含dropdownlistfor的表中

我只需要将"表行"的视图分离为"局部视图",并在添加按钮单击事件时呈现该视图。

二是你可以做到这一点,

1) 使用jquery,调用ajax,让mvc将html返回给您和您把它放在表中"最后一行"的后面2) 使用mvc ajax表单并告诉它该做什么-在中呈现一个额外的行(占位符)结束,并将其作为id,以在成功时替换html。

希望这能有所帮助。