我需要有关jQuery对话框功能的帮助。各部分的代码如下所示。
以下是actionLink选择按钮的代码
Html.ActionLink("Select", "EditExistingReferral", "UnresolvedItems", new { unresolvedReferralId = item.Id }, new { @class = "selectReferral" })
单击此“选择”按钮时,我想要显示一个对话框。这是jQuery对话框的代码。
$(function DisplaySystemMessage() {
$('.selectReferral').click(function (e) {
e.preventDefault();
$('#system-message').dialog({
modal: true,
width: 400,
height: 'auto',
buttons: {
"Continue": function () {
var href = $('.selectReferral').attr('href');
//alert(href);
$(this).dialog('close');
},
"Cancel": function () {
$(this).dialog('close');
}
}
});
//if its referral - open dialog
$('#system-message').dialog('open');
});
});
单击“继续”对话框按钮时,我希望使用apprioriate参数调用以下操作方法:
[HttpGet]
public ActionResult EditExistingReferral(string unresolvedReferralId) {
int existingReferralId = int.Parse(unresolvedReferralId);
....
}
请单击“选择”按钮时如何获取正确的参数,以便在单击“继续”对话框按钮时将其传递给EditExistingReferral操作方法?
提前致谢。
答案 0 :(得分:1)
目前的做法:
var href = $('.selectReferral').attr('href');
将始终获得类selectReferral
的第一个实例,它不会为您获取适当的ID值(除非您单击第一个实例)。
相反,获取刚刚单击的链接的HREF并将其放入变量(在e.preventDefault();
之后放置以下内容)
var destinationHref = $(this).attr("href");
然后你可以在Continue函数中使用这个变量。
与Alert
一起试用,看看href / id值是否符合预期。
希望有所帮助。
答案 1 :(得分:0)
如果您打算从动作方法返回一个新视图而不是
$(location).attr('href', href);
应该这样做。
但是,由于您已经单击了链接以触发对话框,因此更优雅的解决方案是仅在单击“继续”按钮并且仅执行
时允许事件发生e.preventDefault();
如果单击“取消”按钮。
我应该告诉上面的解决方案,这取决于你的RouteConfig是如何设置的。如果您将路由配置为提取unresolvedReferralId(例如
),它将起作用{controller}/{action}/{unresolvedReferralId}