我想在 ExportTo 方法中发送列表数组,但在 ExportTo 方法中学生参数得到空值。如果我使用 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;
});
})
.
Controller
Public void ExportTo(List<Student> student)
{
}
最佳答案
我在不使用 ajax 的情况下测试了您的问题及其工作的某些场景:
首先评论你的代码,因为我没有它。
从索引 View :
@{
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);
})
家庭 Controller :
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);
这就是我得到的..
已根据您的需求进行测试..祝您好运
关于javascript - 我如何在没有 ajax 调用的情况下在 window.location 中传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47862799/