如何解决javascript数组中的索引超出范围
我正在尝试在 javascript 中创建一个数组,其中包含作为模型传递给视图的对象列表,但出现此错误:“System.ArgumentOutOfRangeException:索引超出范围。必须为非负数并且小于集合的大小。(参数'startIndex')”尝试打开视图时。这是我的代码:
<script language="JavaScript">
(function () {
var currentExpression;
var expressionName;
var role;
function startup() {
//Here,the initial expression
counter = 0;
exp = Array.from(@Model);
currentExpression = document.getElementById('expresionImage');
currentExpression.src = "~/Plugins/Widgets.Expressions/Content/Expressions/sample-expressions/" + exp[counter].ExpressionFileName;
expressionName = document.getElementById('expressionName');
expressionName.innerHTML = exp[counter].ExpressionName;
role = exp[counter].Role;
//==================================
//Code here...
$(document).ready(function () {
$("#AjaxForm").submit(function (e) {
e.preventDefault();
// More code...
$.ajax({
type: "post",// Verbo HTTP
url: "@Url.Action("TakePhoto","WidgetsExpressions")",dataType: "application/Json",headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken: "]').val() },data: JSON.stringify(
{
// Datos / Parámetros
ProductId: $("#productId").val(),Role: role,ExpressionName: expressionName,}),contentType: "application/Json; charset=utf-8"
})
.done(function (result) {
counter = ++counter;
//Cambiamos la expression
currentExpression.src = "~/Plugins/Widgets.Expressions/Content/Expressions/sample-expressions/" + exp[counter].ExpressionFileName;
expressionName = exp[counter].ExpressionName;
role = exp[counter].Role;
// Mostramos un mensaje de éxito.
//$("#SuccessAlert").show("slow").delay(2000).hide("slow");
alert(result.Message);
}
else{
//Aqui va el Alert que indica que no se pudo procesar la foto. La expresion sigue igual.
alert(result.Message);
}
})
// Se ejecuta si se produjo un error.
.fail(function (xhr,status,error) {
// Mostramos un mensaje de error.
$("#ErrorAlert").show("slow").delay(2000).hide("slow");
})
// Hacer algo siempre,haya sido exitosa o no.
.always(function () {
});
});
});
//=====================================
window.addEventListener('load',startup,false);
})();
对不起。这可能是一个愚蠢的问题,但我只是从 javascript 开始,无法弄清楚我的错误是什么。 谢谢
解决方法
感谢您的回复。问题是模型必须在将其转换为数组之前进行序列化。我是这样解决的:
var expModel = @Json.Serialize(Model);
exp = Array.from(expModel);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。