2

请我需要有关 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');
    });
});

单击“继续”对话框按钮时,我希望使用适当的参数调用以下操作方法:

[HttpGet]
public ActionResult EditExistingReferral(string unresolvedReferralId) {
    int existingReferralId = int.Parse(unresolvedReferralId);
        ....      
}

请在单击“选择”按钮时如何获取正确的参数,以便在单击“继续”对话框按钮时将其传递给 EditExistingReferral 操作方法?

提前致谢。

4

2 回答 2

1

目前的做法:

var href = $('.selectReferral').attr('href');

将始终获得selectReferral不会为您获得适当 ID 值的类的第一个实例(单击第一个实例时除外)。

相反,获取刚刚单击的链接的 HREF 并将其放入变量中(将以下内容放在后面e.preventDefault();

var destinationHref = $(this).attr("href");

然后你可以在 Continue 函数中使用这个变量。

与您一起尝试Alert以查看 href/id 值是否符合预期。

希望有帮助。

于 2013-08-06T16:13:49.553 回答
0

如果您打算从 action 方法返回一个新视图而不是

$(location).attr('href', href);

应该这样做。

但是,由于您已经单击链接以触发对话框,因此更优雅的解决方案是仅在单击 Continue 按钮时允许事件发生并且仅执行

e.preventDefault();

如果单击取消按钮。

我应该警告上述解决方案,它取决于您的 RouteConfig 的设置方式。如果您有一个配置为提取 unresolvedReferralId 的路由,它将起作用,例如

{controller}/{action}/{unresolvedReferralId}
于 2013-08-06T15:44:11.997 回答