1

我有一个使用 MVC4 和 Razor 的搜索页面。详情如下:

  • 整页分为两部分。
  • 左侧面板包含总共 5 个搜索部分,如按产品搜索、按城市搜索等。每个部分都有复选框列表。因此用户可以从每个部分中选择多个选项。
  • 搜索面板是带有提交按钮的局部视图。如下所示

    @using (Html.BeginForm("ModelsList", "Model")) {

    <div class="ModelListSearch
    
     Panel" style="width: 309px; float: left">
            <div class="heading">
                By Budget
    
                <div class="clear">
                </div>
            </div>
            <!--heading-->
            <ul>
                @{
        for (int i = 0; i < Model.BudgetDescription.Count; i++)
        {
                    <li>
                        @Html.HiddenFor(m => m.BudgetDescription[i].BudgetId)
                        @Html.HiddenFor(m => m.BudgetDescription[i].Description)
                        @Html.CheckBoxFor(m => m.BudgetDescription[i].Selected)@Model.BudgetDescription[i].Description
                    </li>
        }
                }
    
            </ul>
    
  • 动作方法如下

    公共 ActionResult ModelsList(int?brandId,int?bodyStyleId,int?fuelTypeId,int?transmissionTypeId,int?budgetID){

        // this is called when first time page is loaded
    
    }
    

    [HttpPost] public void ModelsList(NewCarSearchContainer searchData) { // 点击搜索按钮时调用
    }

  • 单击搜索按钮后,搜索结果显示在右侧面板中。

  • 当我们单击搜索按钮时,它会将整个搜索对象(NewCarSearchContainer)发布到操作方法中,我们从该对象中找出所选项目并相应地从 DAL 层获取数据。

    此页面运行良好,但问题是 URL 未根据用户选择的搜索选项进行更新。我认为当我们使用 post 时,它不会更新 url。我们不能使用 GET 作为 GET 传递所有复选框项作为具有特定限制的查询字符串标题。一种选择是使用操作链接而不是提交按钮。但在那种情况下,我不知道如何将搜索面板的选定项目传递给操作方法。我们需要根据选择的搜索选项更新 URL 以优化 SEO。

4

1 回答 1

0

请看一下Datatable Jquery Grid。点击这里

于 2013-05-01T10:53:17.287 回答