Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在mvc 3中将项目填充到dropdownlist而不是表中_Asp.net Mvc_Asp.net Mvc 3_Drop Down Menu - Fatal编程技术网

Asp.net mvc 在mvc 3中将项目填充到dropdownlist而不是表中

Asp.net mvc 在mvc 3中将项目填充到dropdownlist而不是表中,asp.net-mvc,asp.net-mvc-3,drop-down-menu,Asp.net Mvc,Asp.net Mvc 3,Drop Down Menu,目前,我正在为每个表填充使用的项,下面是代码: 更新:_FilterSpecsBox.cshtml @model CatalogPagingFilteringModel.SpecificationFilterModel @{ var renderedAttributeNames = new List<string>(); } <div class="product-spec-filt

目前,我正在为每个表填充使用的项,下面是代码: 更新:_FilterSpecsBox.cshtml

         @model CatalogPagingFilteringModel.SpecificationFilterModel
           @{
         var renderedAttributeNames = new List<string>();
          }  
       <div class="product-spec-filter">
       @* <div class="title">
            @T("Filtering.SpecificationFilter")
        </div>*@
        @*<div class="clear">
        </div>*@
        @if (Model.NotFilteredItems.Count > 0)
        {
            <div>
                <table class="filter">
                    @foreach (var item in Model.NotFilteredItems)
                    {
                        if (!renderedAttributeNames.Contains(item.SpecificationAttributeName))
                        {
                            renderedAttributeNames.Add(item.SpecificationAttributeName);
                            <tr class="group">
                                <td>
                                    @item.SpecificationAttributeName
                                </td>
                            </tr>
                        }
                        <tr class="item">
                            <td>
                                **<a href="@item.FilterUrl">@item.SpecificationAttributeOptionName</a>**
                            </td>
                        </tr>
                    }
                </table>
            </div>
        }
        @if (Model.AlreadyFilteredItems.Count > 0)
        {
            <div>
                <div class="title">
                    @T("Filtering.SpecificationFilter.CurrentlyFilteredBy")
                </div>
                <table class="filter">
                    @foreach (var item in Model.AlreadyFilteredItems)
                    {
                        <tr class="filtereditem">
                            <td>
                                <b>@(item.SpecificationAttributeName):</b> @item.SpecificationAttributeOptionName
                            </td>
                        </tr>
                    }
                </table>
            </div>
            <div class="remove-filter">
                <a href="@Model.RemoveFilterUrl" class="remove-product-spec-filter">@T("Filtering.SpecificationFilter.Remove")</a>
            </div>
        }
    </div>
@model cataloggingfilteringmodel.SpecificationFilterModel
@{
var renderedAttributeNames=新列表();
}  
@* 
@T(“过滤.规格过滤器”)
*@
@*
*@
@如果(Model.NotFilteredItems.Count>0)
{
@foreach(Model.NotFilteredItems中的变量项)
{
如果(!renderAttributeName.Contains(item.SpecificationAttributeName))
{
添加(item.SpecificationAttributeName);
@item.Specification属性名称
}
****
}
}
@如果(Model.AlreadyFilteredItems.Count>0)
{
@T(“筛选.规格筛选.当前筛选依据”)
@foreach(Model.AlreadyFilteredItems中的变量项)
{
@(item.SpecificationAttributeName):@item.SpecificationAttributeOptionName
}
}
我想在dropdownlist中填充@item.FilterUrl,任何人都可以提供如何实现这一点的帮助

更新:_filter.cshtml

 @*filtering*@
@if (Model.PagingFilteringContext.PriceRangeFilter.Enabled ||
    Model.PagingFilteringContext.SpecificationFilter.Enabled)
{
    <div class="product-filters">
        <div class="filter-title">
            <span>Filter Products By Analytes</span>
        </div>
     @*   <div class="filter-item">
            @Html.Partial("_FilterPriceBox", Model.PagingFilteringContext.PriceRangeFilter, new ViewDataDictionary())
        </div>*@
        <div class="filter-item">
            @Html.Partial("_FilterSpecsBox", Model.PagingFilteringContext.SpecificationFilter, new ViewDataDictionary())
        </div>
    </div>
    <div class="clear">
    </div>
}
@*过滤*@
@如果(Model.PagingFilteringContext.PriceRangeFilter.Enabled||
Model.PagingFilteringContext.SpecificationFilter.Enabled)
{
通过分析物过滤产品
@*   
@Html.Partial(“\u FilterPriceBox”,Model.PagingFilteringContext.PriceRangeFilter,new ViewDataDictionary())
*@
@Html.Partial(“_FilterSpecsBox”,Model.PagingFilteringContext.SpecificationFilter,new ViewDataDictionary())
}
@model cataloggingfilteringmodel.SpecificationFilterModel
@如果(Model.NotFilteredItems.Count>0)
{
@DropDownList(“NotFilteredItem”,新选择列表(Model.NotFilteredItems,“SpecificationAttributeName”,“SpecificationAttributeName”))
}
@如果(Model.AlreadyFilteredItems.Count>0)
{
@T(“筛选.规格筛选.当前筛选依据”)
@Html.DropDownList(“FilteredItem”,新选择列表(Model.AlreadyFilteredItems,“SpecificationAttributeName”,“SpecificationAttributeOptionName”))
}

但我现在无法进行过滤,在上面的代码中,它正在进行过滤,但在左中部选择了“按过滤产品”的任何属性analyte@Mr答:过滤应该在控制器中进行,而不是在视图中。控制器应该准备视图模型的NotFilteredItems和AlreadyFilteredItems属性,以便视图所要做的就是按原样使用它们。否则,如果您开始在视图中执行过滤和其他操作,则违反了MVC模式。视图不应操作任何数据。它只是以视图模型的形式显示控制器提供的数据。因此,如果您的视图模型不适合,则调整它并在控制器中执行繁重的工作。
@model CatalogPagingFilteringModel.SpecificationFilterModel

<div class="product-spec-filter">
    @if (Model.NotFilteredItems.Count > 0)
    {
        <div>
            @Html.DropDownList("NotFilteredItem", new SelectList(Model.NotFilteredItems, "SpecificationAttributeName", "SpecificationAttributeName"))
        </div>
    }
    @if (Model.AlreadyFilteredItems.Count > 0)
    {
        <div class="title">
            @T("Filtering.SpecificationFilter.CurrentlyFilteredBy")
        </div>
        <div>
            @Html.DropDownList("FilteredItem", new SelectList(Model.AlreadyFilteredItems, "SpecificationAttributeName", "SpecificationAttributeOptionName"))
        </div>
        <div class="remove-filter">
            <a href="@Model.RemoveFilterUrl" class="remove-product-spec-filter">@T("Filtering.SpecificationFilter.Remove")</a>
        </div>
    }
</div>