Как передать динамическую модель данных в действие? - PullRequest
0 голосов
/ 27 июня 2011

Я динамически создаю ASP.NET MVC3 View с некоторыми входными полями, но из-за динамического создания пользовательского интерфейса я не знаю, какие входные поля будут доступны. После нажатия кнопки (поиск) я хочу передать фактические входные данные в качестве модели (ViewModel) в действие. Вот проблема, я не знаю, какими свойствами обладает Модель и как передать эту динамическую Модель / Объект в Действие.

Я пытался просто сделать это так:

public ActionResult StartQuery(dynamic request)
{
    var test = request;
    //...
}

но не знаю, как обращаться с этим динамическим объектом. Если это правильный путь, должен ли я использовать отражение для этого, или кто-нибудь может дать мне совет, как правильно передавать динамические данные в действие?

Спасибо заранее, Корделл

-Edit

Даже если я знаю, что идентификаторы ввода не сработали. Продолжайте получать исключения DynamicBinderException.

public ActionResult StartQuery(dynamic request)
    {
        string test = request.ArticleNo;
        string test2 = request.ArtNoOfSuppl;
        string test3 = request.ArticleGrp;
       //...

Это точные идентификаторы для теста, я не могу основываться на именах, они могут измениться.

1 Ответ

3 голосов
/ 27 июня 2011

Не используйте dynamic, если вы знаете имена, вы можете получить их непосредственно из запроса:

public ActionResult StartQuery()
{
    string test = Request["ArticleNo"];
    string test2 = Request["ArtNoOfSuppl"];
    string test3 = Request["ArticleGrp"];
    ...
}

Если вы их не знаете, вы все равно можете просмотреть коллекцию Request.Params и, основываясь на ваших правилах, найти нужные параметры.

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