我有一个aspx页面和UserControl [它包含一个按钮,文本框] 和userControl被添加到aspx页面
所以当我点击aspx页面中的按钮时,它应该对Controller进行Jquery ajax调用以打开一个对话框。
我怎么能这样做....在这里我们必须调用控制器
答案 0 :(得分:1)
这很简单 - 你创建一个部分视图,它将是实际的对话框内容(让我们称之为MyDialogPV) - 在控制器中创建一个返回PartialView(GetMyDialogPV)的方法 - 使用ajax调用PartialView并在运行时将其作为对话框呈现(在我使用JqueryUI插件的示例中)。
控制器代码:
public PartialViewResult GetMyDialogPV() {
//do some stuff, probably you'll need to set up a model given input parameters
ViewBag.Text = "This is my dialog text, opened at " + DateTime.Now.ToLongTimeString();
//retunr the partialview rendered
return PartialView("MyDialogPV");
}
对话框的部分视图:
<div>Title</div>
<div>
@ViewBag.Text
</div>
父页面代码:
@{ViewBag.Title = "Home Page";}
<script>
$(document).ready(function () {
$('#lod').click(function () { //click event of the link
//load the dialog via ajax
$.ajax({
url: '@(Url.Action("GetMyDialogPV"))',
type: "GET",
dataType: "html",
cache: false,
success: function (data) {
$('#myDialogContainer').html(data); //write the dialog content into the diaog container
$("#myDialogContainer").dialog({ //dialogize it with JqueryUI
autoOpen: false,
height: 400,
width: 450,
modal: true,
buttons: {
"Chiudi": function () { $(this).dialog("close"); }
},
close: function () { }
});
$("#myDialogContainer").dialog("open"); //open it!
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Error');
}
});
});
});
</script>
<a id="lod">Load And Open Dialog</a>
<div id='myDialogContainer' style="background:red">this is the container for the html retrieved by the controller action GetMyDialogPV</div>
答案 1 :(得分:0)