【问题标题】:Search in .net MVC with AJAX. What can I do for the following code?使用 AJAX 在 .net MVC 中搜索。我可以为以下代码做什么?
【发布时间】:2021-04-12 13:22:59
【问题描述】:

我想使用 AJAX 进行搜索。我只是通过在控制器中传递搜索字符串来使用 get 方法,但这不是我想要的

在我的控制器代码下方,我从 URL 获取搜索值并返回 DATA(这是一个列表)

if (search != null)
    {
        if (search.ToLower().ToString() == "paid")
        {
            DATA = DATA.Where(a => a.Purchased_Price > 0).ToList();
        }
        else if (search.ToLower().ToString() == "free")
        {
            DATA = DATA.Where(a => a.Purchased_Price == 0).ToList();
        }
        else
        {
            DATA = DATA.Where(a => a.Purchased_File_Name.ToLower().StartsWith(search.ToLower()) || a.Purchased_Category.ToLower().StartsWith(search.ToLower()) || a.User1.Email.ToLower().StartsWith(search.ToLower()) || a.Purchased_Price.ToString().StartsWith(search)).ToList();
        }
        ViewBag.SoldList = DATA.ToPagedList(page ?? 1, pageSize); *this is what I actually did*
        return Json(DATA , JsonRequestBehavior.AllowGet); *this is trial I do not know this work or not*
}

下面是我写的脚本。我哪里错了?我不知道。我想要在我输入的任何搜索的帮助下提供的任何列表。打印在表格中。表格就在这个脚本的上方;我认为不需要,所以我没有包括在内。

<script>
    $(document).ready(function () {
        $("#search_button").on("click", function () {
            var search_value = $("#searchText").val();
            alert(search_value);
            var SetData = $("#tabledata"); *tabledata is id of tbody tag *
            SetData.html("");
            console.log("setddata");
            console.log(SetData);
            $.ajax({
                type: "get",
                url: "/Home/MySoldNotes?search=" + search_value,  *home is controller, mysoldnotes is action*
                contentType: "application/ json; charset = utf - 8",
                dataType: "html",
                success: function (result) {
                    console.log("result");
                    console.log(result);
                    $.each(result, function (index, value) {
                        var data = "<tr>" +
                            "<td>" + value.NoteDetail.File_Name + "</td>" +
                            "<td>" + value.Purchased_Category + "</td>" +
                            "<td>" + value.User1.Email + "</td>" +
                            "<td>" + value.NoteDetail.Sell_Price + "</td>" +
                            "<td>" + value.Req_Solved_Date + "</td>" +
                        "</tr>"
                        SetData.append(data);
                    });
                },
                error: function (err) {
                    alert("Error aa gai");
                    console.log(err.responseText);
                }
            });
        });
    });
</script>

【问题讨论】:

    标签: javascript ajax asp.net-mvc search


    【解决方案1】:

    您必须通过 ajax 调用将对象传递给控制器​​。示例

    <script>
        $(document).ready(function () {
            $("#search_button").on("click", function () {
    
            var objParam = new Object();
            objParam.search_value = $("#searchText").val();
    
                $.ajax({
                    type: "POST",
                    url: "/Home/MySoldNotes"
                    contentType: "application/json; charset = utf-8",
                    data: JSON.stringify(objParam)
                    success: function (result) {
                        console.log("result");
                        console.log(result);
                        $.each(result, function (index, value) {
                            var data = "<tr>" +
                                "<td>" + value.NoteDetail.File_Name + "</td>" +
                                "<td>" + value.Purchased_Category + "</td>" +
                                "<td>" + value.User1.Email + "</td>" +
                                "<td>" + value.NoteDetail.Sell_Price + "</td>" +
                                "<td>" + value.Req_Solved_Date + "</td>" +
                            "</tr>"
                            SetData.append(data);
                        });
                    },
                    error: function (err) {
                        alert("Error aa gai");
                        console.log(err.responseText);
                    }
                });
            });
        });
    </script>
    

    然后在你的控制器中

    public JsonResult MySoldNotes(string search_value) 
    {
       // Do whatever and return json as result
    }
    

    【讨论】:

      【解决方案2】:
      List<BuyerReq> DATA = dc.BuyerReqs.Where(a => a.seller_id == ab && a.Status == true).AsQueryable().ToList(); 
      return Json(DATA, JsonRequestBehavior.AllowGet); 
      

      从控制器返回时出现错误(我的 AJAX 调用不成功)。

      但是当我这样做是为了测试时:

      var aa = "checking"; return Json(aa, JsonRequestBehavior.AllowGet); 
      

      这行得通。我没有得到确切的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-20
        • 2013-10-18
        • 2020-12-07
        • 1970-01-01
        • 1970-01-01
        • 2014-08-31
        • 1970-01-01
        相关资源
        最近更新 更多