这里发生了很多事情。
我有一个带有以下模板列的 Telerik MVC 网格:
@(Html.Telerik().Grid((IEnumerable<User)Model.Data)
.Name("UsersGrid")
.DataKeys(keys => keys.Add(c => c.UserName))
.DataBinding(dataBinding => dataBinding.Server()
.Columns(c =>
{
c.Bound(r => r.FullName).Title("");
c.Bound(r => r.UserName).Title("");
c.Template(
@<text>
@if(@item.Status == "Pending")
{
@Html.ActionLink("Resend Invite", "ResendInvite", new { Email = @item.UserName, FirstName = @item.FullName }, new { @class = "reesendInviteLink" })
}
</text>
).Title("Link").HtmlAttributes(new { Style = "text-align: right;" });
}));
现在我知道 ActionLink 不会调用 post 操作,所以我使用 jquery 执行以下操作:
$(document).ready(function () {
$(".resendInviteLink").click(function (e) {
var url = e.currentTarget.href;
$.post(url);
});
});
我试图调用的 Action 方法如下所示:
[HttpPost]
public ActionResult ResendInvite(UserVM user)
{
//....Do Something
}
当我调试 jquery 时,一切都很顺利,直到我到达 $.post 然后它失败说它在控制器上找不到 ResendInvite 操作。在某种程度上,我认为这是有道理的,因为 ActionLink 正在寻找 Get,而不是 Post。
那么如何在网格上创建一个链接:
1. 从 Telerik 网格中获取电子邮件和用户名。
2. 调用具有正确参数的后操作方法。
谢谢你的帮助。