Получить данные из контроллера в другой контроллер - PullRequest
0 голосов
/ 28 марта 2012

Я пытаюсь построить общую операцию экспорта в MVC.поэтому я написал контроллер для этого.

[AcceptVerbs(HttpVerbs.Post)]
public string Excel(FormCollection collection)
{
    string dataUrl = collection["dataUrl"];
    string filter = collection["filter"];
    //Get data from dataUrl
    ...
}

Моя проблема в том, что я хочу получить данные для передачи с другого контроллера, передавая тот же параметр его методу через POST .

это пример метода для данных

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult List(FormCollection collection)
{
    ...
    return Json(data);
}

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Почему бы не преобразовать код экспорта в служебный класс, а затем использовать его с обоих контроллеров?

0 голосов
/ 29 марта 2012

Предполагая, что вам абсолютно необходимо вызывать контроллер для контроллера, вы можете использовать запрос HttpWebRequest следующим образом:

public void CallController()
    {
        var request = (HttpWebRequest)WebRequest.Create("http://yoursite.com/Excel");
        request.Method = "POST";

        using (var dataStream = request.GetRequestStream())
        {
            //write your data to the data stream
            using (var response = (HttpWebResponse)request.GetResponse())
            {
                if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.TemporaryRedirect)
                {
                    //work with the controller response
                }
            }
        }
    }

Это очень неэффективно, если вы можете преобразовать код в класс, внешний для обоих контроллеров.

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