【发布时间】:2015-09-25 14:36:03
【问题描述】:
我正在使用 ASP.NET MVC,我的视图中有一个动态表,用户可以添加和删除行。
<table class="table" id="tableClasses">
<tr>
<th>Class</th>
<!-- Icon to add a line. Done with javascript -->
<th><span class="table-add glyphicon glyphicon-plus"></span></th>
</tr>
@foreach (string sClass in tClasses)
{
<tr>
<td contenteditable="true">@sClass</td>
<td>
<span class="table-remove glyphicon glyphicon-remove"></span>
</td>
</tr>
}
<!-- This is our clonable table line -->
<tr class="hide">
<td contenteditable="true">New Class</td>
<td>
<!-- Icon to remove the line. Done with javascript -->
<span class="table-remove glyphicon glyphicon-remove"></span>
</td>
</tr>
</table>
我需要检索并保存控制器中所有行的值,但我不知道该怎么做。
由于我不知道表格中会有多少行,所以我不能使用 id 对吗?
如何访问和循环访问控制器中的表格单元格?
编辑:
这里是控制器代码:
public ActionResult Edit([Bind(Include = "PKAL,FKHC,SIATA,SICAO,SNAME,SETDEARLY,SETDLATE,SLASMIN,SCLASSFASTLANE,SDCSINTERFACE")] AIRLINE AIRLINE) { 如果(模型状态。IsValid) { AIRLINE.SETDEARLY = AIRLINE.SETDEARLY.Replace(":", string.Empty); AIRLINE.SETDLATE = AIRLINE.SETDLATE.Replace(":", string.Empty); AIRLINE.SLASTMIN = AIRLINE.SLASTMIN.Replace(":", string.Empty); FormCollection collection = new FormCollection();
collection.Get("classTemp");
db.Entry(aIRLINE).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.FKHC = new SelectList(db.HANDLER, "PKHC", "SHCODE", aIRLINE.FKHC);
return View(aIRLINE);
}
棘手的是 SCLASSFASTLANE 在数据库中存储为“A,B,C,X”。
这就是为什么我使用自定义模板来显示和修改它,并且我需要一个动态表格(上面的代码)。
【问题讨论】:
-
您介意发布您的控制器代码吗?此外,您必须将其包含在
<form>中或使用 jquery 执行POST。 -
您似乎没有表单,即使有,您也没有生成任何表单控件,因此没有任何内容可以发布到控制器。您将需要使用 javascript/jquery 获取值并使用 ajax 将它们发布到您的控制器。您可以给
<td>元素一个类名,或者只使用循环每个<tr>元素并获取它的第一个<td>元素。 -
我发布了控制器代码。我尝试使用围绕
元素的表单,但它似乎不起作用。你有我如何用 jquery 和 Ajax 做到这一点的例子吗?
你到底为什么要使用<td contenteditable?根据此代码无法理解您尝试做什么,但我建议您访问 MVC 站点并阅读一些教程。
标签: html asp.net-mvc view controller