MVC3返回模态对话框的值

时间:2012-04-26 22:45:14

标签: jquery asp.net-mvc asp.net-mvc-3

我是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();
    });

请帮助!!!

2 个答案:

答案 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)