ASP.NET MVC, JSON-сообщение для действия контроллера с параметром FormCollection - PullRequest
0 голосов
/ 13 ноября 2009

У меня есть куча действий контроллера, которые в основном используются для сохранения данных во внутреннем хранилище. На данный момент большинство из них используют такую ​​подпись:

    //
    // POST: /WidgetZone/Create
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(FormCollection collection)

Как видите, он принимает FormCollection. Это прекрасно работает с классическими представлениями пользователей. Теперь я хочу JSON - включить эти действия. И я делаю это, используя JsonPox фильтр действий, как это:

    //
    // POST: /WidgetZone/Create
    [JsonPox]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(FormCollection collection)

Будет ли это работать, когда действие ожидает FormCollection?

Например, эта работа без проблем (конечно, я создаю объект Json в моей клиентской части JavaScript, чтобы передать его в это действие):

    //
    // POST: /WidgetZone/Create
    [JsonPox]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(string id, string description)

Речь идет о задаче преобразования постбэк-интерфейса в асинхронный, чтобы сохранения и обновления делались асинхронными. Я на правильном пути? Я думаю, что разработка отдельных Json, XML или классических действий ViewResult - не лучший способ.

Помощь оценена

1 Ответ

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

Этот фильтр основан на методе OnActionExecuted, который запускается после выполнения метода действия для сериализации JSON или XML возвращенной модели. То, что у вас есть в качестве входных данных для вашего метода действия, не важно. По завершении выполнения действия фильтр будет искать модель, сохраненную в ViewResult, и сериализовать ее в соответствии с заголовком Content-Type, переданным в запросе.

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