将 Model.ID 传递给 modal 并运行方法
Posted
技术标签:
【中文标题】将 Model.ID 传递给 modal 并运行方法【英文标题】:Passing Model.ID to modal and running a method 【发布时间】:2021-07-07 00:41:15 【问题描述】:我有一个表,我想将一行 (dataID) 传递给我的控制器中的一个方法。
$(document).ready(function ()
$('.modalRed').click(function ()
var url = $('#ledgerModal').data('url');
$.get(url, function (data)
$("#ledgerModal").html(data);
$("#ledgerModal").modal('show');
);
);
);
<table class="tableCustomTableOne" >
<tr>
<th nowrap="nowrap">
@Html.LabelFor(model => model.Name, htmlAttributes: new @class = "control-label col-md-2" )
</th>
<th nowrap="nowrap">
@Html.LabelFor(model => model.Data, htmlAttributes: new @class = "control-label col-md-2" )s
</th>
</tr>
@foreach (var item in (ViewBag.MainLedger as List<ModalApp.Models.Ledger>))
<tr class="modalRed">
<td nowrap="nowrap">
@Html.DisplayFor(modelItem => item.Name)
</td>
<td nowrap="nowrap">
@Html.DisplayFor(modelItem => item.Data),
</td>
</tr>
<tr class="modal fade" id="ledgerModal" role="dialog" data-url='@Url.Action("detLedgerPartial","Ledger", new id = item.Id )'></tr>
</table>
但它只打开第一个“id”的行的信息 我怎样才能使它从特定行发送 ID?
【问题讨论】:
添加data-id属性并通过事件目标获取相关id。看看 - ***.com/questions/58763573/… 【参考方案1】:Id 选择器总是选择具有指定 id 的第一个元素,因为您有许多 <tr>
具有相同的 id ledgerModal
,所以只会选择第一个。像这样更改您的 jquery:
$('.modalRed').click(function ()
var $tr = $(this).next('tr');
var url = $tr.data('url');
console.log(url);
$.get(url, function (data)
$tr.html(data);
$tr.modal('show');
);
);
【讨论】:
$(this)
不能在 $.get..
中工作。
@Swati 我修改了我的答案。以上是关于将 Model.ID 传递给 modal 并运行方法的主要内容,如果未能解决你的问题,请参考以下文章
Angular - 将输入传递给 ng-content 组件