Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC 2 ExtJs和Ajax将对象数组发布到控制器?_Asp.net Mvc_Ajax_Json_Extjs - Fatal编程技术网

Asp.net mvc ASP.NET MVC 2 ExtJs和Ajax将对象数组发布到控制器?

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

我正在开发一个ASP.NET MVC2 web应用程序。
我想使用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。实际上有两种方法:

  • 使用Phil Haack在中描述的
    JsonValueProviderFactory
    ,将为您提供与使用MVC3完全相同的功能

  • 预转换客户端数据,以便ExtJS将其正确发送到服务器。这在某种程度上类似于我对一个机器人所做的。ExtJS也可以做类似的事情。这两个步骤是完成此任务所必需的:

    • 首先,您需要分析JSON对象是如何在线路上转换的(使用Fiddler)

    • 编写将JSON转换为正确发送到服务器的表单的代码。那是什么形式?你可以在我的书里读到

  • 我不知道你是否意识到这一点,但在这种情况下,还有一种叫做的方法可能会对你有所帮助。正如它所说,它支持简单、复杂和数组参数,这些参数实际上涵盖了它

  • 使用MVC3的唯一优点是默认情况下为您启用了
    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有关。论坛参与是免费的。是的,我是论坛的一部分。事实上,我发现了这一点。对于复杂对象,需要使用批处理操作。