我在我的项目中使用 MVC3。
我有一个大约 2-12 个 div 标签的视图,这取决于有多少问题,如果有 5 个问题,则有 5 个 div 标签看起来像一个答案表格。所有这些 div 标签都在一个表单中。
每个 div 标签都有一个 hiddenfield、textarea 和一个 DropDownList。这些字段中的值由 ajax post 使用,它获取字段中的值并将其发布到我的控制器。
到目前为止,我可以用我的代码发布第一个 div 标签,但其余的 div 标签没有发布。我正在寻找的是能够在单击“全部保存”按钮时一一发布所有 div 标签。此外,所有 div 标签都具有相同的类名:“wizard-step2”。它们都有一个唯一的 ID,ID 的值是从数据库中获取的 QuestionID。
这是我的帖子的jquery代码:
$("saveall").click(function() {
$('#loading2').show();
setTimeout(function () { $("#loading2").hide(); }, 400);
var $step = $(".wizard-step2"); // show all steps
var Comment = $step.find(".Comment").val();
var QuestionID = $step.find(".QuestionID").val();
var Grade = $step.find(".Grade").val();
var data =
{
Comment: Comment,
QuestionID: QuestionID,
Grade: Grade
};
$.post('@Url.Action("AnswerForm", "AnswerNKI")', data, function () {
});
});
以下代码将仅保存第一个 div 标签,而不保存其余部分。
这是我的 HTML:
@{
int nr = 1;
foreach (SelectedQuestionViewModel items in Model.AllSelectedQuestions)
{
<div class="wizard-step2" id="@items.QuestionID">
<br/>
<br/>
<p>@(nr++). @items.SelectedQuestionText <span class="b">Betyg:
@{
var selectListItems = (new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }).Select(i => new SelectListItem { Text = i.ToString(), Value = i.ToString(), Selected = (items.Grade.HasValue && i == items.Grade.Value) });
@Html.DropDownList("selectetListItems", selectListItems, "n/a", new { @class = "Grade" })
}</span></p>
<div class="editor-field">
@Html.TextArea("Comment", items.Comment, new { @id = "selectstyle3", @class = "Comment" })
</div>
<br/>
<br/>
@Html.Hidden("QuestionID", items.QuestionID, new { @id = "SelectedQuestions", @class = "QuestionID" })
<br/>
</div>
}
}
任何帮助表示赞赏。
提前致谢!