MVC -DropDownList - 类别 - 子类别

时间:2009-06-09 16:11:51

标签: asp.net-mvc

在我的数据库中,我有tbales:categoreis和SubCategoreis。我想创建一个包含这两者的下拉列表。类似的东西:

    «Välj»

<option value='1000' style='background-color:#dcdcc3;font-weight:bold;' id='cat1000' >

            -- FORDON --    /// this is from Categoreis Table

    </option> 

<option value='1020'  id='cat1020' >
        Bilar                    /// this is from SubCategoreis

    </option> 

<option value='1040'  id='cat1040' >
        Bildelar & Biltillbehör   /// this is from Categoreis

    </option> 

<option value='1060'  id='cat1060' >
        Båtar                   /// this is from Categoreis

    </option> 

<option value='1080'  id='cat1080' >
        Båtdelar & tillbehör   /// this is from Categoreis

    </option> 

我是如何解决这个问题的?我应该使用助手还是MVCUsercontrol ???在这种情况下,我认为缓存是重要的。请帮帮我! 谢谢!

2 个答案:

答案 0 :(得分:0)

只需在控制器中加载数据并按照您认为合适的方式构建它...然后您需要做的就是将列表传递给下拉式html帮助程序,它不必知道有关数据结构的任何信息。 / p>

如果您完全购买MVC模式时接受了对您提出的关注点的分离,那么这种事情就会自行解决:-P

答案 1 :(得分:0)

Frajer,

您需要使用OPTION和OPTGROUP元素创建SELECT列表。以下是您要查找的格式:

<select>
<option value="">[Please select an option]</option>
<optgroup label="Group 1">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</optgroup>
<optgroup label="Group 2">
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
</optgroup>
<optgroup label="Group 3">
    <option value="5">Option 5</option>
    <option value="6">Option 6</option>
</optgroup>
<optgroup label="Group 4">
    <option value="7">Option 7</option>
    <option value="8">Option 8</option>
</optgroup>

查看此博文。它以粗体显示类别,以常规文本显示类别项目。作者创建了一个MVC扩展来处理这个问题。

http://weblogs.asp.net/raduenuca/archive/2011/02/26/asp-net-mvc-extending-the-dropdownlist-to-show-the-items-grouped-by-a-category.aspx