0

我正在使用 jQuery 打开一个模态对话框,如下所示:

$('#AddCustomerDialog').dialog(
    {
    autoOpen: false,
    width: 400,
    resizable: false,
    modal: true,
    buttons:
    {
        "Done": function () {
        $(this).dialog('close');
        }
    }
});


$('#AddCustomerLink').click(function () {
    linkObj = $(this);
    var dialogDiv = $('#AddCustomerDialog');
    var viewUrl = "/Cases/AddCustomer";
    $.get(viewUrl, function(data) {
        dialogDiv.html(data);
        //open dialog
        dialogDiv.dialog('open');
    });
    return false;
    });
});

对话框上部分视图的目的是“即时”输入新的客户记录。我想让新的客户 ID 返回到调用视图,但我不确定如何使用我正在使用的代码执行此操作。任何建议或示例将不胜感激。

*编辑 2012 年 8 月 16 日**

那么我应该用控制器动作做这样的事情吗?

public JsonResult AddCustomer()
{
    var result = ...insert statement here

    ...linq select to get new customerid
    {
       CustomerID = c.CustomerID
       ...
    };
return Json(variable, JsonRequestBehavior.AllowGet); 
}

我知道这很混乱,但是有了这个基本想法,这会给我我需要的东西吗?

R

4

2 回答 2

1

您可以使用“完成”按钮单击回调,例如

if (!$("#AddCustomerDialog form").valid())
    return false;
var postUrl = $("#AddCustomerDialog form").attr('action');
$.post(postUrl, $(containerSelector + ' form').serialize(),
        function (result) {
            $("#AddCustomerDialog").dialog("close");
            var addedCustomerId = result.Id;
        });

AddCustomer 操作(用于发布请求)也应该以 Json 格式返回添加的客户。

于 2012-08-10T21:51:03.360 回答
0

在您的 html 页面脚本中声明一个变量,现在在您的 php 代码的返回数据中添加一个带有变量名称的 echo 脚本并在此处设置您想要的 id

在你的脚本中: var foo;

在你的 php 代码中

echo 'data for insert in div';
echo '<script>foo=id_you_want</script>';
exit();

有了这个,您在 html 页面中使用新客户的 id 设置 foo var 并可以使用它

于 2012-08-10T21:40:59.050 回答