Проблема с постом в MVC - PullRequest
       30

Проблема с постом в MVC

1 голос
/ 26 ноября 2009

У меня проблема с моим проектом MVC. Я пытаюсь сделать это:

В представлении я загружаю некоторые данные в jqgrid и, основываясь на некоторых выборках пользователя, сохраняю эти выборки в VAR-файле javascript и передаю его через $ post в действие контроллера, это действие должен вызывать свой собственный вид и загружать данные, которые я передал ранее.

Передача данных работает нормально, но когда данные достигают нового представления (второго), они просто не загружаются; я сделал отладку, чтобы подтвердить, что данные достигают второго просмотра, но страница не отображается.

Вот код моего 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 ]

2 голосов
/ 26 ноября 2009

Где вы ожидаете загрузить вид? Когда вы делаете

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

это просто отправит в контроллер действия и ничего не изменит с результатами (Вы можете подтвердить, что вызов AJAX выполняется с использованием FireBug). Если вы хотите что-то сделать с результатом, возвращаемым действием контроллера, вы можете попробовать это:

$.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 голос
/ 26 ноября 2009

Вы только когда-либо вернете представление MyAction, используя return View(myobject);, которое вы можете попробовать

return View("yourviewname", myobject);

Доброжелательность,

Dan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...