Asp.net mvc 4 从jquery对话框上加载的局部视图返回值

Asp.net mvc 4 从jquery对话框上加载的局部视图返回值,asp.net-mvc-4,jquery-ui-dialog,asp.net-mvc-partialview,Asp.net Mvc 4,Jquery Ui Dialog,Asp.net Mvc Partialview,我有一个局部视图“selectUser”。在此局部视图上,用户可以搜索其他用户。用户id将存储在隐藏字段中,或在我的视图中作为var存储。我需要在很多地方使用这个局部视图。假设我需要在对话框的关闭事件中返回所选用户的id。我的问题是,如何使这个局部视图(作为jQueryUI的模式对话框加载)重新运行所选值到其父视图?是否有一种直接从父视图访问值的方法?我想我会按照您现在需要的方法进行操作。因此,在单击按钮时,您可以对服务器进行ajax调用,并在调用中包含目标字段名 $.ajax({ u

我有一个局部视图“selectUser”。在此局部视图上,用户可以搜索其他用户。用户id将存储在隐藏字段中,或在我的视图中作为
var
存储。我需要在很多地方使用这个局部视图。假设我需要在对话框的关闭事件中返回所选用户的id。我的问题是,如何使这个局部视图(作为jQueryUI的模式对话框加载)重新运行所选值到其父视图?是否有一种直接从父视图访问值的方法?

我想我会按照您现在需要的方法进行操作。因此,在单击按钮时,您可以对服务器进行ajax调用,并在调用中包含目标字段名

$.ajax({
     url: "@(Url.Action("Action", "Controller"))",
     type: "POST",
     cache: false,
     async: true,
     data: { destination: 'fieldName' },
     success: function (result) {
         $(".Content").html(result);
         AttachScript();
         Dialog.load();
     }
});
在控制器上,通过视图模型或viewbag将该字段发送到局部视图,并在局部视图上将该字段名称放入隐藏字段中。然后在你的按钮点击,你应该能够做这样的事情(未经测试)


这会将隐藏字段中命名的任何字段的值设置为数据。希望这会有所帮助。

您是否将部分视图加载到父页面中,然后使用jquery显示它?是的,但不确定这样做的最佳方式是否需要查看overlay.load()和attachScript,不知道它们做了什么,是否有任何链接或教程可以继续?我有点迷路了你在哪里?你有部分加载并显示在你的对话框中吗?是的,并且值存储在一个隐藏字段或js变量中,所以在close方法中我可以使用它(但它看起来不干净),也将使用同一个对话框在我的parrent视图中输入不同的字段,所以我需要找到一种方法。请查看我上面更改的答案
function AttachScript(){
    $('.btnSubmit').on('click', function(){
        var data = $('.sharedField').val();
        $($('.HiddenField').val()).val(data);
    });
}