Asp.net mvc ASP.NET MVC 2 ExtJs和Ajax将对象数组发布到控制器?
我正在开发一个ASP.NET MVC2 web应用程序。Asp.net mvc ASP.NET MVC 2 ExtJs和Ajax将对象数组发布到控制器?,asp.net-mvc,ajax,json,extjs,Asp.net Mvc,Ajax,Json,Extjs,我正在开发一个ASP.NET MVC2 web应用程序。 我想使用AJAX将视图代码中的JSON对象数组发送到控制器。 我已经看到了许多使用jquery实现这一点的hot示例。 但是,我想知道如何在不使用jquery的情况下使用Ajax请求来实现这一点? 我已经读到更新到MVC3可能会有所帮助,如果这是最好的解决方案,你能告诉我如何从MVC2更新到MVC3的正确方向吗 下面是一些示例代码: 查看 var modRecords = store.getModifiedRecords(); Ext.A
我想使用AJAX将视图代码中的JSON对象数组发送到控制器。
我已经看到了许多使用jquery实现这一点的hot示例。
但是,我想知道如何在不使用jquery的情况下使用Ajax请求来实现这一点?
我已经读到更新到MVC3可能会有所帮助,如果这是最好的解决方案,你能告诉我如何从MVC2更新到MVC3的正确方向吗 下面是一些示例代码: 查看
var modRecords = store.getModifiedRecords();
Ext.Ajax.request({
url: AppRootPath +'EmployeeDetails/SetSAASUser',
params: {
users: modRecords
}
});
控制器
public JsonResult SetUser(IEnumerable<User> users)
{
GetData data = delegate
{
return Repo.SetUser(users);
};
JsonResultBase jsonResult = GetJsonResult(data);
JsonResult json = PortalJsonResult(jsonResult, JsonRequestBehavior.AllowGet);
return json;
}
public JsonResult SetUser(IEnumerable用户)
{
GetData=delegate
{
返回回购集合用户(用户);
};
JsonResultBase jsonResult=GetJsonResult(数据);
JsonResult json=PortalJsonResult(JsonResult,JsonRequestBehavior.AllowGet);
返回json;
}
到MVC3还是不到MVC3
不过,不需要特别转换为MVC3,因为您也可以在MVC2中使用JSON。实际上有两种方法:
JsonValueProviderFactory
,将为您提供与使用MVC3完全相同的功能- 首先,您需要分析JSON对象是如何在线路上转换的(使用Fiddler)
- 编写将JSON转换为正确发送到服务器的表单的代码。那是什么形式?你可以在我的书里读到
JsonValueProviderFactory
,而无需任何其他代码
几年前,当ExtJS出现在版本2中时,我就使用了它。没有
Ext.Direct
和当时的MVC。但是,我们非常成功地将它与Asp.net WebForms应用程序配对,并使用与Asp.net WebForms应用程序相同的业务+数据层对WCF进行异步调用。好吧,如果我理解你的意思,你正试图完成同样的任务,但使用ExtJS而不是jQuery?是的,或者只是简单的javascript没有jQuery。。对此有何想法?不确定您的问题出在这里,但您是否尝试过用户:Ext.encode(modRecords)?将modRecords转换为可发送到服务器的有效JSON。您是否已成功尝试使用Ext.Direct MVC发送复杂的JSON数据?我问这个问题是因为我被它困住了。@DavidS:不是真的,但是ExtJS支持很棒(我几年前就用过它)。那里的人一定会帮助你的。如果您购买了许可证,他们必须在一定时间内回答。所以问他们。我们还在试验阶段,但谢谢你回复我。我想我已经找到了让事情继续发展的方法:)。此外,我怀疑他们是否会支持Ext.Direct MVC:)。@DavidS:正如我在他们的论坛上看到的,有很多问题与Ext.Direct和MVC有关。论坛参与是免费的。是的,我是论坛的一部分。事实上,我发现了这一点。对于复杂对象,需要使用批处理操作。