【发布时间】:2020-03-10 16:34:54
【问题描述】:
我有一个简单的表格,可以编辑特定行的项目。当用户点击图标(类icon ion-md-create)时,模态出现,然后用户可以编辑数据。 Modal 包含表单,因此当用户提交表单时,控制器正在使用新数据更新数据库。
这是我显示行的方式:
@foreach (var measurement in Model.WeightMeasurements)
{
<tr>
<td>@Html.DisplayFor(x => measurement.MeasurementDate)</td>
<td>@Html.DisplayFor(x => measurement.Value)</td>
<td>
<a class="btn-icon" href="#" data-toggle="modal" data-target="#editWeight" data-id="@measurement.Id" data-weight="@measurement.Value" data-date="@measurement.MeasurementDate">
<i class="icon ion-md-create"></i>
</a>
</td>
</tr>
}
这就是我获取每一行数据并将它们插入模态的方式:
$(document).ready(function () {
$('#editWeight').on('show.bs.modal', function (e) {
// get data
var id = $(e.relatedTarget).data('id');
var weight = $(e.relatedTarget).data('weight');
var date = $(e.relatedTarget).data('date');
// insert data in modal
$('#e_weight_id').val(id);
$('#e_weight_value').val(weight);
$('#e_datepickerWeight').val(date);
});
});
这是我的模态的样子:
<div class="modal animated bounceIn" id="editWeight" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div>
<div class="modal-body">
@using (Html.BeginForm("EditWeightMeasurement", "Measurement", FormMethod.Post, new { @class = "pt-5" }))
{
@Html.Hidden("e_weight_id", "");
<div class="row">
<div class="col-6 form-group">
<label for="uname">Weight [kg] </label>
@Html.TextBox("e_weight_value", "", new { @placeholder = "Edit weight", @class = "form-control", @required = "required" })
</div>
<div class="col-6">
<div class="form-group">
<label>Date</label>
@Html.TextBox("e_weight_date", "", new { @id = "e_datepickerWeight", @class = "form -control datepicker" })
</div>
</div>
</div>
<div class="d-flex py-3 align-items-center">
<div class="ml-auto">
<button type="submit" class="btn pink">Save</button>
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
我不喜欢 js 在那里的工作方式 - 我不想从 html 获取数据,而是将整个 measurement 对象传递给 modal(与从 form 传递对象的方式相同)到controller 层)。这可以吗?
【问题讨论】:
-
如果可能,请分享您的代码,以便我帮助从头开始改进 DM 代码
-
@HardikMasalawala 我已经添加了代码
-
尽可能分享我个人资料中的邮件
标签: javascript c# css asp.net twitter-bootstrap