Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Javascript ASP.NET MVC将json数组作为常规post请求提交给控制器(nonajax)_Javascript_Asp.net Mvc_Json_Post - Fatal编程技术网

Javascript ASP.NET MVC将json数组作为常规post请求提交给控制器(nonajax)

Javascript ASP.NET MVC将json数组作为常规post请求提交给控制器(nonajax),javascript,asp.net-mvc,json,post,Javascript,Asp.net Mvc,Json,Post,我在网上找到的所有json示例都只显示了如何使用jquery命令$.ajax()提交json数组。我正在以json数组的形式从自定义用户控件提交一些数据。我想知道是否可以将json数组作为常规post请求提交给服务器(像普通表单一样),以便浏览器呈现返回的页面 控制器: [JsonFilter(Param = "record", JsonDataType = typeof(TitleViewModel))] public ActionResult SaveTitle(TitleViewModel

我在网上找到的所有json示例都只显示了如何使用jquery命令$.ajax()提交json数组。我正在以json数组的形式从自定义用户控件提交一些数据。我想知道是否可以将json数组作为常规post请求提交给服务器(像普通表单一样),以便浏览器呈现返回的页面

控制器:

[JsonFilter(Param = "record", JsonDataType = typeof(TitleViewModel))]
public ActionResult SaveTitle(TitleViewModel record)
{
    // save the title.
    return RedirectToAction("Index", new { titleId = tid });
}
Javascript:

function SaveTitle() {
    var titledata = GetData();

    $.ajax({
        url: "/Listing/SaveTitle",
        type: "POST",
        data: titledata,
        contentType: "application/json; charset=utf-8",
     });

}

这是从保存按钮调用的。一切正常,但提交后浏览器仍保持在页面上。我曾考虑从服务器返回某种自定义xml并执行javascript重定向,但这似乎是一种非常有技巧的做法。任何帮助都将不胜感激。

Phil Haack提供了一个示例,展示了自定义值提供程序而不是操作过滤器的用法。

我不明白如果您想发布整版文章,为什么要发布Json。为什么不直接从Html表单元素中发布普通表单变量呢?

这是一个老问题,但这可能对任何找到它的人都有用--

您可以从web页面返回带有新标题ID的JsonResult

public ActionResult SaveTitle(TitleViewModel record) {
     string tId = //save the title 
     return Json(tId)
}
然后根据ajax请求添加一个成功函数:

function SaveTitle() {
    var titledata = GetData();

    $.ajax({
        url: "/Listing/SaveTitle",
        type: "POST",
        data: titledata,
        contentType: "application/json; charset=utf-8",
        success: function(data) { window.location = "/Listing/Index?titleId=" + data; }
     });

}
这将在ajax请求成功后重定向页面。
我刚刚看到你在文章末尾提到了这一点,但我认为这是一种简单而快速的解决问题的方法。

这是因为我没有对我试图发回的一些数据使用普通表单元素。我正在使用一个列表树类型控件(),它是通过浏览器上的javascript修改的,我想将树结构发回服务器。我的问题是从服务器返回的响应以及浏览器如何处理它。