【问题标题】:ASp.NET MVC 4 RAZOR - Best way to create a search pageASp.NET MVC 4 RAZOR - 创建搜索页面的最佳方式
【发布时间】:2013-05-01 07:17:28
【问题描述】:

我有一个使用 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>
    
  • 动作方法如下

    public ActionResult ModelsList(int?brandId, int?bodyStyleId, int?fuelTypeId, int? 传输类型ID,整数?预算ID) {

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

    [HttpPost] 公共无效模型列表(NewCarSearchContainer 搜索数据) { // 这是在点击搜索按钮时调用的
    }

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

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

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

【问题讨论】:

    标签: url search asp.net-mvc-4 checkbox http-post


    【解决方案1】:

    请查看 Datatable Jquery Grid。点击Here

    【讨论】:

    • 我已经在使用它了。问题与根据所选搜索选项更新 url 有关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2010-10-12
    相关资源
    最近更新 更多