当我在ExtJS sync
上调用store
方法并且有一个要更新的对象时,将使用一个对象作为参数调用代理更新方法。
如果有更多对象要更新,则会将一组对象传递给代理更新方法。
我的代理的端点是MS MVC控制器。我不能使用单个对象和对象列表重载请求的方法(由于模型绑定,MVC控制器不支持)。
我该如何使这项工作? (要么一次从ExtJS更新1个对象,要么对单个对象或对象数组使用不同的请求)
ExtJS商店:
Ext.define('MyApp.store.Configuration', {
extend: 'Ext.data.Store',
requires: 'MyApp.model.Configuration',
model: 'MyApp.model.Configuration',
autoLoad: false,
isLoaded: false,
proxy: {
type: 'ajax',
actionMethods: { create: 'POST', read: 'POST', update: 'POST', destroy: 'POST' },
limitParam: undefined,
pageParam: undefined,
startParam: undefined,
api: {
read: 'MyAppData/ConfigurationRead',
create: MyAppData/ConfigurationUpdate',
update: MyAppData/ConfigurationUpdate',
destroy: MyAppData/ConfigurationDelete'
},
reader: {
type: 'json',
root: 'data',
successProperty: 'success',
messageProperty: 'message'
}
},
MVC控制器,无法正常工作:
[HttpPost]
public ActionResult ConfigurationUpdate(List<Configuration> data)
{
// do something
}
[HttpPost]
public ActionResult ConfigurationUpdate(Configuration data)
{
// do something
}
答案 0 :(得分:1)
你看过JSON编写器的allowSingle配置了吗? http://docs.sencha.com/extjs/4.2.0/source/Json3.html#Ext-data-writer-Json-cfg-allowSingle