MVC中的帖子有问题

时间:2009-11-26 13:17:21

标签: c# asp.net jquery

我对我的MVC项目进行了故障排除。我正在尝试这样做:

在视图上我在jqgrid上加载一些数据,并根据用户的一些选择,我将这些选择保存在javascript VAR上,并通过$ post将其传递给控制器​​的Action,该操作应该调用它自己的视图并加载我之前传递的数据。

传递数据工作正常,但是当数据到达新视图(第二个)时,它根本不加载;我做了一个调试来确认数据是否到达第二个视图,但页面没有显示。

以下是我的javascript代码:

$.post("/MyController/MyAction", { strParams: myParam });

这是我的控制器

    public ActionResult MyAction(string[] strParams){... return View(myobject);}

这是我的第二个视图标题:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/SiteIC.Master" Inherits="System.Web.Mvc.ViewPage<object[]>" %>

...

我没有看到问题出在哪里,除了第二个没有显示的视图外,一切都通过了。

2 个答案:

答案 0 :(得分:2)

您希望视图加载到哪里?当你这样做

$.post("/MyController/MyAction", { strParams: myParam });

这将简单地发布到控制器操作并且不对结果执行任何操作(您可以确认使用FireBug执行AJAX调用)。如果你想对控制器动作返回的结果做一些事情,你可以试试这个:

$.post("/MyController/MyAction", { strParams: myParam }, function(result) {
    // result variable will contain the HTML rendered by the action
});

此外,如果您打算将生成的HTML注入到DOM中,您的控制器操作需要返回部分视图而不是完整视图:

public ActionResult MyAction(string[] strParams)
{
    // ...
    return PartialView("~/Views/MyController/MyAction.ascx", myobject);
}

答案 1 :(得分:1)

您只能使用您可以尝试的return View(myobject);返回视图MyAction

return View("yourviewname", myobject);

善,