私はASP.NETにはとても新しいので、ASP.NetのMVC 3フレームワークを使用しています。ドロップダウンリストのオプションを別のドロップダウンリストでフィルタリングしようとしていましたが、それを行うことはできません。私は主なカテゴリとサブカテゴリの両方のリストを入力し、それらをページにロードすることでこれを最初に試みていました。次に、各サブカテゴリのオプションのクラス属性を親カテゴリに設定します。最後に、最初のドロップダウンリストから親カテゴリをクリックすると、子サブカテゴリのみが表示され、残りの部分は非表示になります(以前は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 ActionResult Create()
{
var model = new TestQuestionsViewModel
{
Categories = resetDB.Categories.OrderBy(c => c.categoryid),
SubCategories = resetDB.SubCategories.OrderBy(sc => sc.subcategoryid)
};
return View(model);
}
私の質問は、私が設定することができますどのように私のコントローラクラスメソッドである私のモデル
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; }
}
です個々のオプションのクラス属性あるいは、誰かがこれをどうやって別の方法で行うかについての示唆を持っているなら、私はどんな解決策にも開放しています。ありがとうございました。
@Shyjuに感謝して忘れてしまった...これはすごくうれしく思います。私はそれを使用して、それは素晴らしい動作します。さらに、JsonとAjaxについてもっと研究するのに役立ちました。 – Sophonias
@ソフォニアス:あなたは大歓迎です。お役に立てて嬉しいです。 – Shyju
編集アクションの結果内のコードを理解する必要があります –