打开带有参数的jQuery对话框
我有一个MVC视图,我想从中弹出一个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
$(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
});