プロジェクトで MVC3 を使用しています。
質問の数によって異なりますが、質問が 5 つある場合は、回答フォームのように見える 5 つの div タグがあります。これらの div タグはすべて 1 つのフォーム内にあります。
各 div タグには、hiddenfield、textarea、および DropDownList があります。これらのフィールド内の値は、フィールド内の値を取得してコントローラーに投稿する ajax post によって使用されます。
これまでのところ、コードで最初の div タグを投稿できましたが、残りの div タグは投稿されていません。私が探しているのは、「すべて保存」ボタンをクリックすると、すべての div タグを 1 つずつ投稿できるようにすることです。また、すべての 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>
}
}
どんな助けでも大歓迎です。
前もって感謝します!