1

我有一个由 JQuery ajax 调用的控制器操作,并希望将“结果”的内容返回到请求页面。到目前为止,我已经...

控制器

    public ActionResult DynCalc(resultsModel model){
    ...
    //code that populates model - all working ok
    ...
     if (Request.IsAjaxRequest())
          {
            return PartialView("results", model.Results);
          }
          else
          {
            return null; //Handle this later
          }
    }

这会传回一个有效的模型。从javascript调用:

     $.ajax({
            url: "/Test/DynCalc",
            type: "POST",
            data: $("#frmResults").serialize(), //This part works
            dataType: "html",
            success: function (result) {
                $('#resultsSection').html(result);
                $('#hide_panel a').flash("#111", 1000);
            }
        });

成功永远不会受到打击。希望有人能告诉我我很愚蠢并且遗漏了一些明显的东西吗?

我的部分视图结果只是一个带有 javascript 的 HTML 页面。如果我只有以下

Hello world在我的结果视图中,它可以正常工作,使用任何脚本,它不会

我在正确的轨道上吗?我应该更改控制器上的返回类型吗?还是使用 JSON?

我没有发布结果页面的内容,因为它是整个文档还是简单的都没有关系<b>hi</b>- 它做同样的事情。

4

2 回答 2

1

尝试只返回一个视图。因为在这种情况下您的结果是一个完整的视图(因为操作结果可能是 HTML、XML、JSON ......无论如何)。仅将 PartialView用作呈现部分视图的一种方式。

例如,在您的 MasterPage 上,您希望“始终”呈现用户信息:@RenderAction("UserInfoAction", "UserController")

于 2012-09-25T10:37:21.387 回答
0
    var model= {
        "PropertyName1":$("#txt1").val(),
        "PropertyName1": $("#txt2").val(),         
       }

     $.ajax({
         type:"POST",
         url: 'Url.Action("DynCalc","ControllerName")',
         data: JSON.stringify(model),
         contentType: "application/json;charset=utf-8",
         success: function (data, status, xhr)
          {
         alert("The result is : " + status + ": " + data);
          },
         error: function (xhr)
         {
         alert(xhr.responseText);
         }
       });
于 2017-07-11T11:52:24.390 回答