根据asp.net mvc中的搜索条件填充数据c#

时间:2012-02-02 06:33:51

标签: jquery asp.net asp.net-mvc

我有一个产品详情页面。所有产品均根据3个标准​​显示:

  1. 当用户点击左侧菜单
  2. 当用户在搜索文本框中输入并搜索
  3. 当用户选择品牌组合框时
  4. 由于用户点击以下列表,这是考试网址:

    1. http://mysite.com/Products?dep=1&cat=2&tab=2:显示depId = 1且categoryID = 2的产品。
    2. http://mysite.com/Products?brand=ABC_2&tab=2:显示品牌名称为“ABC”且品牌ID = 2的产品
    3. http://mysite.com/Products?tab=2&search=ABCD:显示产品名称=“ABCD”
    4. 的产品

      问题:当用户点击下面的每个链接时,页面将刷新,因此我无法将参数字符串混合在一起。我想将这3个标准组合在一起,意味着当用户点击(1)然后继续(2)和(3)时,网址将:

      http://mysite.com/Products?dep=1&cat=2&brand=ABC_2&search=ABCD&tab=2

      因此页面将显示depID = 1,categoryID = 2,品牌ID = 2,品牌名称= ABC,产品名称=“ABCD”的产品。

      这是我试图在我的site.master中获取(3):

      function SearchClick() {
         window.location = "/Products?tab=2" + ($("#txtsearch").val() != "" || $("#txtsearch").val() 
         == "undefined" ? "&search=" + $("#txtsearch").val() : "");
      }
      

      先谢谢。

3 个答案:

答案 0 :(得分:1)

我注意到你正在使用jQuery,我会建议:

//using Request.Params
string Dept = Request.Params["dep"];
string Cat = Request.Params["cat"];
string Brand = Request.Params["brand"];
//capture the char after '?' or '&' and pass into Params["char"]
//do your search function.

This链接可以帮助您。

如果您想在页面刷新后保留它,可以将其存储在Session

string theDept = Request.Params["dep"];
Session["dep"] = aa;    

string dep = (string)Session["dep"];

答案 1 :(得分:1)

这应该让你入门

后端:

  • 创建一个包含3个属性的SearchModel:search,brand,dep
  • 有一个采取搜索模型的行动产品

前端:

  • 创建一个发布到上面的Product操作的表单,确保它有一个提交按钮
  • 使用id / name ='search'
  • 在该表单中创建一个文本框
  • 使用id / name ='dep'
  • 在该表单中创建一个ddl
  • 使用id / name ='brand'

  • 在该表单中创建一个隐藏字段
  • 使用jquery,在用户点击左栏时更新隐藏字段

  • 使用jquery随时提交用户:点击提交按钮,更改ddl或点击左栏

答案 2 :(得分:1)

如果您使用ajax加载页面,也可以尝试此操作。

    $.ajax({
        url: '/Products',
        type: 'GET',
        dataType: 'json',
        cache: false,
        async: false,
        data: { dep: 1, brand: abc_2, search:abcd, tab:2 },
        success: function (data) {
        //Do your work here
              },
        error: function (ex) {
            alert('Error.');
        }

    });

您通常会将3个条件放在同一页面中,例如搜索文本框,品牌/部门下拉列表,然后点按一下按钮就会触发此查询。