如何在没有ajax调用的情况下在window.location中传递数组

问题描述 投票:3回答:1

我想在ExportTo方法中发送列表数组,但在ExportTo方法中,学生参数获取null值。如果我使用ajax它会工作正常。但必须使用window.locatoin作为传递列表数组。

视图

            $(document).ready(function () {

            $("#SaveBtn").click(function () {

                var student = {

                    Name: "Tanzid",
                    Department: "CSE"

                };
                var student1 = {

                    Name: "Yasir",
                    Department: "BBA"

                };
                var list = [];

                list.push(student);
                list.push(student1);

               var url = '@Url.Action("ExportTo", "Students")';

               var a = JSON.stringify(list);

               window.location = url + '?' + a;
            });
        })

。 调节器

Public void ExportTo(List<Student> student)
    {




    }
javascript c# jquery asp.net-mvc
1个回答
0
投票

我在不使用ajax的情况下测试了你的问题及其工作的一些场景:

首先评论你的代码因为我没有它。

从索引视图:

@{
    ViewBag.Title = "Index";
}
<script src="~/scripts/jquery-1.10.2.js"></script>
<h2>Index</h2>
<script>


     $(document).ready(function () {

    var person = [];
    person.push("Reign");//change like $("#idname").val();
    person.push("John");
    var listOfObjects = [];
    person.forEach(function (names) {
        var singleObj = {}
        singleObj['name'] = names;
        singleObj['dept'] = 'IT Dept.';
        listOfObjects.push(singleObj);
    });

    var url = '@Url.Action("Sample", "Home")';

    window.location = url + '?id=' + JSON.stringify(listOfObjects);
})

HomeController的:

 public ActionResult Sample()
    {
       string getval = Request.QueryString["id"];
       string concat = @"{""data"":" + getval + "}";


        ValList vl = new JavaScriptSerializer().Deserialize<ValList>(concat);

        foreach (var item in vl.data)
        {
            Console.WriteLine("dept: {0}, name: {1}", item.dept, item.name);
        }

        return View();
    }


    public class ValList
    {

        public List<Values> data { get; set; }
    }

    public class Values
    {
        public string name { get; set; }
        public string dept { get; set; }
    }

它完全依赖于您的项目代码:

        //var List = [];
        //var a = {
        //    Name: $("#").val(),
        //    Dept: $("#").val()
        //};
        //List.Push(a);

这就是我得到的......

它根据您的需求进行了测试。祝您好运

© www.soinside.com 2019 - 2024. All rights reserved.