首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AJAX将JavaScript数组发布到asp.net MVC控制器

使用AJAX将JavaScript数组发布到asp.net MVC控制器
EN

Stack Overflow用户
提问于 2013-04-03 16:32:37
回答 5查看 60.2K关注 0票数 21

我的控制器:

代码语言:javascript
复制
[HttpPost]
public ActionResult AddUsers(int projectId, int[] useraccountIds)
{
    ...
}

我想通过AJAX将参数发送到控制器。传递int projectId不是问题,但我无法发布int[]

我的JavaScript代码:

代码语言:javascript
复制
function sendForm(projectId, target) {
    $.ajax({
        traditional: true,
        url: target,
        type: "POST",
        data: { projectId: projectId, useraccountIds: new Array(1, 2, 3) },
        success: ajaxOnSuccess,
        error: function (jqXHR, exception) {
            alert('Error message.');
        }
    });
}

我尝试了一个测试数组,但没有成功。:(我也尝试设置traditional: truecontentType: 'application/json; charset=utf-8',但也没有成功...

发送到我的控制器的int[] useraccountIds总是空的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-03 16:35:03

您可以定义一个视图模型:

代码语言:javascript
复制
public class AddUserViewModel
{
    public int ProjectId { get; set; }
    public int[] userAccountIds { get; set; }
}

然后调整您的控制器操作,将此视图模型作为参数:

代码语言:javascript
复制
[HttpPost]
public ActionResult AddUsers(AddUserViewModel model)
{
    ...
}

并最终调用它:

代码语言:javascript
复制
function sendForm(projectId, target) {
    $.ajax({
        url: target,
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({ 
            projectId: projectId, 
            userAccountIds: [1, 2, 3] 
        }),
        success: ajaxOnSuccess,
        error: function (jqXHR, exception) {
            alert('Error message.');
        }
    });
}
票数 39
EN

Stack Overflow用户

发布于 2013-11-07 22:59:12

在JS中:

代码语言:javascript
复制
var myArray = new Array();
myArray.push(2);
myArray.push(3);
$.ajax({
            type: "POST",
            url: '/MyController/MyAction',
            data: { 'myArray': myArray.join() },
            success: refreshPage
        });

在MVC/ C#中:

代码语言:javascript
复制
public PartialViewResult MyAction(string myArray)
{
   var myArrayInt = myArray.Split(',').Select(x=>Int32.Parse(x)).ToArray();
   //My Action Code Here
}
票数 18
EN

Stack Overflow用户

发布于 2013-08-27 18:34:55

使用$.Ajax(),您可以轻松地将数据从javascript获取到中。

就像,

代码语言:javascript
复制
var uname = 'John Doe';

$.ajax({

        url: "/Main/getRequestID",  // This is path of your Controller with Action Result.
        dataType: "json",           // Data Type for sending the data

        data: {                     // Data that will be passed to Controller
            'my_name': uname,     // assign data like key-value pair       
             // 'my_name'  like fields in quote is same with parameter in action Result
        },

        type: "POST",               // Type of Request
        contentType: "application/json; charset=utf-8", //Optional to specify Content Type.

        success: function (data) { // This function is executed when this request is succeed.
                alert(data);
        },

        error: function (data) {
                alert("Error");   // This function is executed when error occurred.
        }
)};

然后,在控制器端,

代码语言:javascript
复制
public ActionResult getRequestID(String my_name)
{

    MYDBModel myTable = new Models.MYDBModel();
    myTable.FBUserName = my_name;
    db.MYDBModel.Add(myTable);
    db.SaveChanges();              // db object of our DbContext.cs
    //return RedirectToAction(“Index”);   // After that you can redirect to some pages…
    return Json(true, JsonRequestBehavior.AllowGet);    // Or you can get that data back after inserting into database.. This json displays all the details to our view as well.
}

参考。Send Data from Java Script to Controller in MVC

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15782417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档