私の質問に対するダリンの回答に基づいて、ドロップダウンからのユーザーの選択に基づいて複数のチェックボックスの選択を表示しますか? ドロップダウンの選択に基づいて複数のチェックボックスを表示しています。
これで、ユーザーが自分のページにあるフォーム(複数の入力を含む)を投稿したら、FormCollectionを使用してすべてのデータを収集します。そして、私が抱えている問題は、これらの選択されたチェックボックスの値をフォームコレクションからどのように引き出すことができるかということです。チェックボックスの数は、ドロップダウンからの選択によって変わるため、各チェックボックスの値を要求しても機能しないと思います。
誰かがこの問題で私を助けることができますか?
フローは以下のとおりです。
モデルのプロパティ
public class Subcategory
{
public string Name { get; set; }
public int ID { get; set; }
public bool Flag { get; set; }
}
他のフォーム入力がある実際のビューでPartialViewを表示する:
<div id="checkboxlist">
@if (Model.SubCategories != null)
{
@Html.Partial("SubCategories", Model.SubCategories)
}
</div>
PartialView SubCategories.cshtml
@model IEnumerable<MyProject.Entities.Subcategory>
@{
// we change the HTML field prefix so that input elements
// such as checkboxes have correct names in order to be able
// to POST the values back
ViewData.TemplateInfo.HtmlFieldPrefix = "checkboxlist";
}
<span>subcategory</span>
<div id="subcategories" style="margin-left: 130px;margin-top: -20px;" data-role="fieldcontain">
<fieldset data-role="controlgroup">
@Html.EditorForModel()
</fieldset>
</div>
EditorTemplates Subcategory.cshtml
@model MyProject.Entities.Subcategory
<div class="editor-label">
@Html.CheckBoxFor(c => c.Flag, new { type = "checkbox" })
<label for="@Model.ID">@Model.Name</label>
@Html.HiddenFor(c => c.Flag)
@Html.HiddenFor(c => c.ID)
@Html.HiddenFor(c => c.Name)
</div>
ドロップダウンの選択に基づいてチェックボックスを表示するjquery:
$('#Category').change(function () {
var subcategoriesUrl = $(this).data('subcategoriesurl');
var categoryId = $(this).val();
$('#checkboxlist').load(subcategoriesUrl, { category: categoryId });
});