我有一堆控制器操作,主要用于将数据保存到后端存储。目前大多数都使用这样的签名:
//
// 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时,这会起作用吗?
例如这项工作没有问题(当然我在我的JavaScript客户端构建Json对象以将其传递给此操作):
//
// POST: /WidgetZone/Create
[JsonPox]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(string id, string description)
所有关于将回发UI转换为异步UI的任务,以便保存和更新将完成异步。我是在正确的轨道上吗?我认为开发单独的Json,XML或经典的ViewResult操作并不是最好的方法。
帮助表示赞赏
答案 0 :(得分:1)
此过滤器基于OnActionExecuted方法,该方法在执行操作方法后运行,以便JSON或XML序列化返回的模型。您对行动方法的输入并不重要。一旦操作完成执行,过滤器将查找存储在ViewResult中的模型,并根据请求中传递的Content-Type标头对其进行序列化。