Jquery对话框按钮用参数调用Action方法

时间:2013-08-06 15:28:42

标签: jquery

我需要有关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操作方法?

提前致谢。

2 个答案:

答案 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}