私はASP.NETを初めて使用し、ASP.NetのMVC3フレームワークを使用しています。別のドロップダウンを使用してドロップダウンリストのオプションをフィルタリングしようとしましたが、それを行うことができません。最初に、メインカテゴリとサブカテゴリの両方のリストを入力してページにロードすることでこれを実行しようとしていました。次に、各サブカテゴリのオプションのクラス属性を親カテゴリに設定しました。最後に、最初のドロップダウンリストから親カテゴリをクリックすると、子サブカテゴリのみが表示され、残りは非表示になります(これは以前にJavaで行った方法です)。しかし、ASP.Net MVCでは、htmlコードが非常に異なるため、ドロップダウンの各オプションにクラス属性を設定することもできません。通常、各オプションではなく、すべてのドロップダウンにクラスを設定します。これは私が今持っているものですこれは私の見解です
<p>
@Html.LabelFor(model => model.CategoryId)
@Html.DropDownListFor(x => x.CategoryId , new SelectList(Model.Categories, "CategoryId", "CategoryName"), new { onchange= "this.form.submit();"})
</p>
<p>
@Html.LabelFor(model => model.SubCategories)
@Html.DropDownListFor(x => x.SubCategories, new SelectList(Model.SubCategories, "SubCategoryId", "SubCategoryName"), new { @class = "Category1.categoryname" })
</p>
これは私のモデルです
public class TestQuestionsViewModel
{
public string CategoryId { get; set; }
public IEnumerable<Category> Categories { get; set; }
public string SubCategoryId { get; set; }
public IEnumerable<SubCategory> SubCategories { get; set; }
}
これは私のコントローラークラスのメソッドです
public ActionResult Create()
{
var model = new TestQuestionsViewModel
{
Categories = resetDB.Categories.OrderBy(c => c.categoryid),
SubCategories = resetDB.SubCategories.OrderBy(sc => sc.subcategoryid)
};
return View(model);
}
私の質問は、個々のオプションごとにクラス属性を設定するにはどうすればよいですか。または、誰かがこれを別の方法で行う方法について提案があれば、私はどんな解決策にもオープンです。ありがとうございました。