【问题标题】:How to get returned data from a controller in AjaxOptions using asp net mvc 4如何使用asp net mvc 4从AjaxOptions中的控制器获取返回的数据
【发布时间】:2012-12-14 18:45:20
【问题描述】:

我有这个表格

@using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST",
OnSuccess = "LimparCampos('true')", OnFailure = "LimparCampos('false')" }, 
new { id = "formUpdStoringSettings" }))
{ ... }

我想传递 /Operacao/opImportFile 返回的字符串,而不是 true 或 false

这可能吗?

【问题讨论】:

    标签: c# .net ajax asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    基于documentation,回调提供了返回的ajax内容,它本身有一个“get_data()从服务器获取响应的方法”。

    在您的定义中,您可能只需要指向回调方法,而不是自己实际调用它(意思是,不要包含参数):

    OnSuccess = "LimparCampos"
    

    【讨论】:

      【解决方案2】:

      我非常倾向于避免使用 AjaxForm。我会编写普通表单并让我的 javascript 来处理单独发布的表单。简单干净。

      @using(Html.Beginform("opImportFile","Operaco"))
      {
        //some elements here
        <input type="submit" value="Save" id="btnSave" />
      }
      

      还有一些 javascript 让我们的表单提交到 ajaxified 版本

      $(function(){
        $("#btnSave").click(function(e){
           var _form=$(this).closest("form");
           e.preventDefault();
           $.post(_form.attr("action"),_form.serialize(),function(response){
               // now response variable has the return item from the action method.
               // and do some fun stuff with that.
               alert(response);
      
           });
        });
      });
      

      您可以从您的操作方法返回任何内容。字符串、JSON 或部分视图。

      【讨论】:

        【解决方案3】:

        尝试像这样设置回调函数:

        OnSuccess = "LimparCampos"
        

        并使用 :

        访问数据
          function LimparCampos(response) {
             var jsonResult = response.get_response().get_object();
        
          }
        

        【讨论】:

          猜你喜欢
          • 2021-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-14
          • 2015-09-13
          • 1970-01-01
          相关资源
          最近更新 更多