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);
}
我感谢任何人能提供的帮助。
我只需要将"表行"的视图分离为"局部视图",并在添加按钮单击事件时呈现该视图。
二是你可以做到这一点,
1) 使用jquery,调用ajax,让mvc将html返回给您和您把它放在表中"最后一行"的后面2) 使用mvc ajax表单并告诉它该做什么-在中呈现一个额外的行(占位符)结束,并将其作为id,以在成功时替换html。
希望这能有所帮助。