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アクション(POSTリクエスト用)は、追加された顧客をJson形式で返す必要があります。

于 2012-08-10T21:51:03.360 に答える
0

HTMLページスクリプトで変数を宣言します。ここで、PHPコードからの戻りデータに、変数名を使用してエコースクリプトを追加し、ここに必要なIDを設定します。

スクリプト内:var foo;

あなたのphpコードで

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

これを使用して、新しい顧客のIDを使用してhtmlページにfoo varを設定し、それを使用できます

于 2012-08-10T21:40:59.050 に答える