【问题标题】:Load partial view by sending javascript data array as parameter通过发送 javascript 数据数组作为参数来加载部分视图
【发布时间】:2020-06-11 05:28:58
【问题描述】:

这是我的 javascript,通过发送数据数组作为参数来加载部分视图。

$('body').on('click', '.btn-add-answer', function () {       


    var answerObj = Array.from(GetAnswerDetails(this));
    var lastAnswer = answerObj[answerObj.length - 1];
    var answers = {};
    answers.Id = parseInt(lastAnswer.Id) + 1;
    answers.FormQuestionId = lastAnswer.FormQuestionId;
    answers.Text = "";
    answers.IsCorrect = false;
    answers.Score = null;
    answers.QuestionAnswerId = 0;
    answers.Sequence = 0;
    answerObj.push(answers);


    $("#survey-answer-container")
        .load("LoadTest", answerObj);

});

这是我的控制器

public ActionResult LoadTest(List<AnswerDto> answers)
        {

            return PartialView("_SurveyPageSectionQuestionAnswer", answers);
        }

这是我的 DTO

public class AnswerDto
    {
        public int Id { get; set; }
        public string Text { get; set; }
        public int Sequence { get; set; }
        public bool? IsCorrect { get; set; }
        public int? Score { get; set; }
        public int FormQuestionId { get; set; }
        public int QuestionAnswerId { get; set; }
    }

问题是参数没有到达控制器。控制器中的 'answers' 参数只有默认值。

如何在部分视图加载中从 javascript 发送数据数组作为参数?

【问题讨论】:

  • 您正在明确替换控制器上 DTO 的值...
  • @Gusman 这实际上是我的测试数据.. 忘记删除它.. 但问题保持不变

标签: javascript c# jquery asp.net-mvc


【解决方案1】:

尝试如下所示的对象。将您的 object 包装为 { answers: answerObj } 以便它可以与参数名称匹配。

$("#survey-answer-container")
    .load("LoadTest", { answers: answerObj });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2013-01-10
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多