Общий тип объекта / класса для передачи обратно в httppost? - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть метод, который возвращает мою модель представления из представления, как такового в моем сообщении:

[HttpPost]
public ActionResult DoStuff(daViewModel model)
{
    string whatever = model.Name;
    int id = model.Id;
    return View();
}

Какой тип объекта get передается обратно в мой метод контроллера в сообщении (моя модель представления упакована втип класса httppost?) Есть ли общий / тип, который я могу передать, например:

[HttpPost]
public ActionResult DownloadFiles(object model)
{
    // cast my daViewModel from object model as passed in???
    string whatever = model.Name;
    int id = model.Id;
    return View();
}

1 Ответ

3 голосов
/ 03 апреля 2012

Вы можете передать FormCollection объект:

[HttpPost]
public ActionResult DownloadFiles(FormCollection collection)
{
    // if you want to extract properties directly:
    string whatever = collection["Name"];
    int id = int.Parse(collection["Id"]);

    // if you want to convert the collection to your model:
    SomeModel model;
    TryUpdateModel(model, collection);

    return View();
}

Метод TryUpdateModel возвращает логическое значение. Если ему удастся обновить модель, он вернет true, иначе вернет false. Передаваемые значения формы должны соответствовать именам свойств вашей модели.

Если вы спрашиваете, какую модель передают обратно, когда вы звоните return View(), тогда ответ на этот вопрос - ничего, если вы не скажете это. Существует перегрузка метода View(), который принимает модель:

return View(model);

Вы должны возвращать тип, который View ожидает увидеть. Если вы определили свое представление как модель Foo, тогда вам лучше вернуть Foo в вашем контроллере.

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