我想编辑我的View表,实际上我希望表中的某些字段可编辑,因此在这种情况下,我在自己的控件中使用了文本框,但是当单击EDIT按钮时,仍然没有在控制器中传递任何文本框值,最后我为此目的使用jquery函数,但是我没有在控制器中获得编辑后的值。这里有人帮助我进行整理吗? 提前致谢。 这是我的控制器:
public ActionResult Edit(int id)
{
OpeningVoucher model = new OpeningVoucher();
var vob = _dbcon.v_dvch_opening.FirstOrDefault(x => x.acc_no == id);
model.acc_no = id;
model.dvch_dr_famt = Convert.ToDouble(vob.dvch_dr_famt);
model.dvch_cr_famt = Convert.ToDouble(vob.dvch_cr_famt);
model.dvch_dr_amt = Convert.ToDecimal(vob.dvch_dr_amt);
model.dvch_cr_amt = Convert.ToDecimal(vob.dvch_cr_amt);
model.mvch_rat = Convert.ToDouble(vob.mvch_rat);
return View("Index", model);
}
[HttpPost]
public ActionResult Edit(OpeningVoucher model)
{
if (ModelState.IsValid)
{
var com = _dbcon.v_dvch_opening.FirstOrDefault(x => x.acc_no == model.acc_no);
com.mvch_rat =com.mvch_rat;
com.dvch_cr_famt = model.dvch_cr_famt;
com.dvch_dr_amt =model.dvch_dr_amt;
_dbcon.SaveChanges();
return RedirectToAction("Index");
}
return View("Index", model);
}
我的代码是: 鉴于我这样做:
<th>
@Html.DisplayName("Debit")
</th>
<th>
@Html.DisplayName("Credit")
</th>
@foreach (var item in Model)
{
<td>
@Html.EditorFor(model => item.dvch_dr_famt, new { htmlAttributes = new { @class = "form-control" } })
</td>
<td>
@Html.EditorFor(model => item.dvch_cr_famt, new { htmlAttributes = new { @class = "form-control" } })
</td>
}
当我使用Jquery时:
<script>
$('.edit').click(function () {
var row = $(this).closest('tr');
row.toggleClass('isediting'); // add a style to highlight the row
var isediting = row.hasClass('isediting');
$(this).parent('td').siblings('td').prop('contenteditable', isediting);
if (isediting) {
$(this).text('update');
} else {
$(this).text('edit');
}
})
</script>