1

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

请帮忙!!!

4

2 回答 2

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" 
   };
}
于 2012-04-26T23:14:03.210 回答
0

谢谢大家,看完这篇文章我就搞定了

http://www.matthidinger.com/archive/2011/02/22/Progressive-enhancement-tutorial-with-ASP-NET-MVC-3-and-jQuery.aspx

于 2012-04-27T23:38:53.527 回答