我正在使用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返回到调用视图,但我不知道如何使用我正在使用的代码。任何建议或例子都将不胜感激。
* 编辑08/16/2012 **
我应该用控制器动作做这样的事情吗?
public JsonResult AddCustomer()
{
var result = ...insert statement here
...linq select to get new customerid
{
CustomerID = c.CustomerID
...
};
return Json(variable, JsonRequestBehavior.AllowGet);
}
我知道这很麻烦,但基本的想法会给我我需要的东西吗?
[R
答案 0 :(得分: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格式返回添加的客户。
答案 1 :(得分:0)
在你的html页面脚本中声明一个变量,现在在php代码的返回数据中添加一个带有变量名称的echo脚本,并在此处设置你想要的id
脚本中的:var foo;
在您的PHP代码中
echo 'data for insert in div';
echo '<script>foo=id_you_want</script>';
exit();
这样你就可以在html页面中设置foo var,其中包含新客户的id并且可以使用它