Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开带有参数的jQuery对话框_Jquery_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

打开带有参数的jQuery对话框

打开带有参数的jQuery对话框,jquery,asp.net-mvc,asp.net-mvc-3,Jquery,Asp.net Mvc,Asp.net Mvc 3,我有一个MVC视图,我想从中弹出一个jQuery对话框。在对话框中,我想渲染视图,但控制器操作需要一个参数。以下是我所拥有的: $(document).ready(function () { $dialog = $('<div></div>') .dialog({ open: function(event, ui) { $(this).load("@Url.Action

我有一个MVC视图,我想从中弹出一个jQuery对话框。在对话框中,我想渲染视图,但控制器操作需要一个参数。以下是我所拥有的:

$(document).ready(function () {
            $dialog = $('<div></div>')
            .dialog({
            open: function(event, ui) {
                $(this).load("@Url.Action("Edit", "Agenda", new {id = ???})"); //Line to fix
            },
            autoOpen: false
        });

因此,问题是:如何调整代码以将
calEvent
传递到
id
参数?

您的问题不是很清楚。如果要传递给控制器的参数是javascript变量,则可以使用以下参数:

open: function(event, ui) {
    var url = '@Url.Action("Edit", "Agenda")';
    $(this).load(url, { id: someJavascriptVariable });
}

请看一下该方法的文档。第二个参数允许您为AJAX请求传递其他参数。

jQuery提供了一种存储数据的方法,无需使用伪属性或找到解决问题的方法

在调用对话框时,使用jquery对话框对象上的.data()方法将任何数据绑定到对话框,并使用open()函数中的相同方法将其读取:

$('#calendar').fullCalendar({
eventClick: function (calEvent, jsEvent, view) {
    $dialog.data('id', calEvent.id).dialog('open');
}
});

$(文档).ready(函数(){
$dialog=$('')
.对话({
打开:功能(事件、用户界面){
url=“@url.Action”(“编辑”,“议程”,新{id=“XXX”})”;
url.replace(“XXX”,$(this.data('id'));
$(this.load)(url);
},
自动打开:错误
});
简单地说, 它应该像

$(document).ready(function () {
        $dialog = $('<div></div>')
        .dialog({
        open: function(event, ui) {
            $(this).load("@Url.Action("Edit", "Agenda", new {id = '<%= calEvent.id %>'})"); //Line to fix
        },
        autoOpen: false
    });
$(文档).ready(函数(){
$dialog=$('')
.对话({
打开:功能(事件、用户界面){
$(this.load(“@Url.Action(“Edit”,“Agenda”,new{id='''})”);//要修复的行
},
自动打开:错误
});

很抱歉,我没有注意到您在服务器端呈现Url。您必须替换预呈现Url中的一部分。我相应地编辑了代码。
$(document).ready(function () {
        $dialog = $('<div></div>')
        .dialog({
        open: function(event, ui) {
            url = "@Url.Action("Edit", "Agenda", new {id = "XXX"})";
            url.replace( "XXX", $(this).data('id') );
            $(this).load(url);
        },
        autoOpen: false
    });
$(document).ready(function () {
        $dialog = $('<div></div>')
        .dialog({
        open: function(event, ui) {
            $(this).load("@Url.Action("Edit", "Agenda", new {id = '<%= calEvent.id %>'})"); //Line to fix
        },
        autoOpen: false
    });