передача строго типизированного объекта (не объекта модели) в качестве параметра методу действия контроллера из представления в ASP.NET MVC 3 - PullRequest
1 голос
/ 02 февраля 2012

Можно ли передавать строго типизированный пользовательский объект из представления в метод действия контроллера в запросе get или post (не объект модели, который используется для привязки данных в представлении)? У меня есть объект модели представления, который имеет свойство «тип события», а затем несколько других свойств в качестве аргументов события. для каждого сообщения или запроса на получение из представления я хочу создать экземпляр этого объекта модели представления и передать тип события (тип события указывает, какое действие выполняет пользователь в качестве перечисления и устанавливает требуемые свойства). объект создается компоновщиком модели, но значения не заполняются. но если я передаю анонимный объект, я могу извлечь значения, но мне нужно объявить параметр для каждого свойства в анонимном объекте, которого я хочу избежать.

пример кода:

@Ajax.ActionLink("link1","ActionMethod1", new EventData {EventType="event1",Arg1=@arg1})

@Ajax.ActionLink("link2","ActionMethod1", new EventData {EventType="event2",Arg2=@arg2})

Метод действия:

[HttpPost]
public void HandleEvent(EventData eventData)
{
     if (eventData != null)
     {
         //perform action
     }
}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Вы пытались обернуть свой строго типизированный объект в общий объект?

@Ajax.ActionLink("link1","ActionMethod1", new{eventData = new EventData {EventType="event1",Arg1=@arg1}})

Я не уверен, даст ли это ожидаемые результаты или нет, но я думаю, что стоит попробовать.

0 голосов
/ 02 февраля 2012

Если я правильно прочитал ваш вопрос, вы пытаетесь передать строго типизированный объект из браузера через HTTP GET / POST в контроллер и хотите ли он десериализоваться в нужный объект?

Это абсолютно возможно.В браузере просто сериализуйте в объект JSON, который соответствует вашему типу на стороне сервера.

Проверьте плагин Form http://jquery.malsup.com/form/, который сделает это за вас.

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