使用模型和 ID 路由到 POST 方法
Route to a POST method with model and id
我想将两个 ID 传递给我的方法。该方法称为 DeleteAttendee,位于我的培训区域的 SessionController 上。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DeleteAttendee(int sessId, int attId)
我创建了一个 link 来到达那里 https://localhost:<port>/Training/Session/DeleteAttendee?sessId=1&attId=3
。
<a asp-action="DeleteAttendee" asp-route-attId="@item.Attendee.Id" asp-route-sessId="@Model.Id">Delete</a>
使用默认路由,无法找到此页面。我需要更改或设置什么才能路由到此方法?
编辑:显然问题是 link 正在执行 GET,但我需要它 POST。我该如何更改它?
我认为你可以用 button
控件完成我想做的事情。如果我可以传入模型和特定 ID,它现在对我来说实际上会更好。我尝试了下面的按钮。它在标记中看起来是正确的,但是当单击按钮时,id 不断被 sessionId 替换。
<button formaction="/Training/Session/DeleteAttendee/@item.Id" formmethod="post">Edit</button>
你能用 ActionLink
代替吗?
@Html.ActionLink("Delete", "DeleteAttendee", "Session", new { sessId = Model.Id, attId = item.Attendee.Id })
我最终使用调用 javascript 的提交按钮并将值添加到视图模型以完成此操作。
页面上:
<input type="hidden" asp-for="SelectedAttendeeId" />
<input type="button" onclick="DeleteAttendee(@item.Id)" value="E" />
在javascript中:
function DeleteAttendee(attendeeId) {
var selectedAtt = $('#SelectedAttendeeId');
selectedAtt.val(attendeeId);
var model = $('#frmSession').serialize();
$.post('/Training/Session/DeleteAttendee', model, function (data) {
// success logic here
});
}
我想将两个 ID 传递给我的方法。该方法称为 DeleteAttendee,位于我的培训区域的 SessionController 上。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult DeleteAttendee(int sessId, int attId)
我创建了一个 link 来到达那里 https://localhost:<port>/Training/Session/DeleteAttendee?sessId=1&attId=3
。
<a asp-action="DeleteAttendee" asp-route-attId="@item.Attendee.Id" asp-route-sessId="@Model.Id">Delete</a>
使用默认路由,无法找到此页面。我需要更改或设置什么才能路由到此方法?
编辑:显然问题是 link 正在执行 GET,但我需要它 POST。我该如何更改它?
我认为你可以用 button
控件完成我想做的事情。如果我可以传入模型和特定 ID,它现在对我来说实际上会更好。我尝试了下面的按钮。它在标记中看起来是正确的,但是当单击按钮时,id 不断被 sessionId 替换。
<button formaction="/Training/Session/DeleteAttendee/@item.Id" formmethod="post">Edit</button>
你能用 ActionLink
代替吗?
@Html.ActionLink("Delete", "DeleteAttendee", "Session", new { sessId = Model.Id, attId = item.Attendee.Id })
我最终使用调用 javascript 的提交按钮并将值添加到视图模型以完成此操作。
页面上:
<input type="hidden" asp-for="SelectedAttendeeId" />
<input type="button" onclick="DeleteAttendee(@item.Id)" value="E" />
在javascript中:
function DeleteAttendee(attendeeId) {
var selectedAtt = $('#SelectedAttendeeId');
selectedAtt.val(attendeeId);
var model = $('#frmSession').serialize();
$.post('/Training/Session/DeleteAttendee', model, function (data) {
// success logic here
});
}