我是MVC3的新手,想知道是否可以将值返回到模态对话框。见下面的例子。
在我的.cshtml文件中,单击“日志”按钮时,它会调用日志操作。
<button name="button" value="log" id="log">Log</button>
<div id="dialog-message" title="Input Error!">
<p>
<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
The result from the controller is :
</p>
</div>
在我的控制器动作中我有这个
public ActionResult Log(FormCollection collection)
{
if(x+2!=4)
{
// return the value of x to the modal dialog
}
else
{
// save record to database
}
}
我希望jquery模式对话框显示x的值。
在jquery脚本中,我有以下
$("#dialog-message").dialog({
autoOpen: false,
modal: true,
buttons: {
Ok: function () {
$(this).dialog("close");
}
}
});
$("#log").click(function () {
$("#dialog-message").dialog("open");
this.defaultShowErrors();
});
请帮助!!!
答案 0 :(得分:2)
看起来你错过了两件事:1)结果的容器,以及2)获取结果的Ajax调用。首先是容器:
The result from the controller is : <span id='result_container'></span>
和Ajax电话:
$("#log").click(function() {
var ajaxUrl = // set the URL for **Log** here
$.get(ajaxUrl, function(data) {
$("#result_container").html(data);
});
$("#dialog-message").dialog("open");
});
在控制器中,您只需将结果作为纯文本返回:
if(x+2!=4)
{
// return the value of x to the modal dialog
return new ContentResult() {
Content = x,
ContentEncoding = System.Text.Encoding.UTF8,
ContentType = "text/plain"
};
}
答案 1 :(得分:0)