微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

返回Json结果格式时如何解析未定义的值?

如何解决返回Json结果格式时如何解析未定义的值?

我试图创建一个搜索过滤器,每次我插入一个int数据类型时,它都会在下面的行中引发错误,并且需要一些帮助来解决该问题。

当我进入抛出错误方法Json GetStringData时,我发现'SearchValue'未定义。

这怎么可能?如何更改此代码才能使此代码正常工作?与引发错误的地方一样,数据确实从记录中返回,问题出在何时插入搜索过滤器。

ASP.Net

var content: String = ""
    for i in 1...9{
        for j in 1...9{
            if i == 9 || (j > 1 && j<5 && i+j == 10) || (i >= 5 && i == j)  {
                content += " " + "\(i*j)" + ""
                content += "\t"
                //create attributed string
                let myAttributes: [NSMutableAttributedString.Key: Any] = [
                    .foregroundColor: UIColor.black,.backgroundColor: UIColor(
                        red:   .random(in: 0...1),green: .random(in: 0...1),blue:  .random(in: 0...1),alpha: 1.0
                     ),.font: UIFont.boldSystemFont(ofSize: 17)
                ]
                let myAttrString = NSMutableAttributedString(string: content,attributes: myAttributes)
                print(myAttrString)
                numberLabel.attributedText = myAttrString
            }else{
                content += " " + "?" + ""
                content += "\t"
                //create attributed string
                let elseAttributes: [NSMutableAttributedString.Key: Any] = [
                    .kern: 5,.foregroundColor: UIColor.black,.backgroundColor: UIColor.yellow,.font: UIFont.boldSystemFont(ofSize: 17)
                ]
                let elseAttrString = NSMutableAttributedString(string: content,attributes: elseAttributes)
                print(elseAttrString)
                numberLabel.attributedText = elseAttrString
            }
        }
        content += "\n"
    }
    
}

JavaScript

     //GET: SearchPeople-ID.
    
            public ActionResult SearchPeopleDetails()
            {
                
                RegCoursesviewmodel regCoursesView = new RegCoursesviewmodel();
                
                return View(cb.RegPeopleLists.ToList());
            }
    
            // GET://Passing-Data-Back as Json.
            public JsonResult GetSearchingData(string SearchBy,string SearchValue)
            {
                List<eNtsaRegPeopleLists> regPeopleLists = new List<eNtsaRegPeopleLists>();
                if(SearchBy == "ID")
                {
                    try
                    {
                        int Id = Convert.ToInt32(SearchValue); // Incorrect string format
                        regPeopleLists = cb.RegPeopleLists.Where(v => v.LoginID == Id || SearchValue == null).ToList();
                    }catch(FormatException)
                    {
                        Console.WriteLine("{0} Is Not A ID ",SearchValue);
                    }return Json(regPeopleLists,JsonRequestBehavior.AllowGet);
                }
                else
                {
                    regPeopleLists = cb.RegPeopleLists.Where(v => v.Name.StartsWith(SearchValue) || SearchValue == null).ToList();
                    return Json(regPeopleLists,JsonRequestBehavior.AllowGet);
                }
                
            }
     public class eNtsaRegPeopleLists
        {
            public string Name { get; set; }
            [Key]
            public int LoginID { get; set; }
            public string SISID { get; set; }
            public string Role { get; set; }
            public DateTime LastActivity { get; set; }
            public decimal TotalActivity { get; set; }
        }

查看

    <!--Javascript functionality for filter search-->
    <script src="~/Scripts/jquery-3.4.1.min.js"></script> 
    <script type="text/javascript">
         $(document).ready(function () {
            $("#SearchLv").keyup(function () {
                var SearchBy = $("#SearchBy").val();
                var SearchValue = $("#Search").val();
                var SetData = $("#DataSearching");
                SetData.html("");
                debugger;
                $.ajax({
                    type: "post",url: "/Home/GetSearchingData?SearchBy=" + SearchBy + "&SearchValue=" + SearchValue,contentType: "html",success: function (result) {
                        if (result.length == 0) {
                            SetData.append('<tr style="color:red"><td colspan="3">No Match Data</td></tr>')
                        }
                        else {
                            $.each(result,function (index,value) {
                                var Data = "<tr>" +
                                    "<td>" + value.LoginID + "</td>" +
                                    "<td>" + value.Name + "</td>" +
                                    "<td>" + value.Role + "</td>" +
                                    "<td>" + value.SIS_ID + "</td>" +
                                    "<td>" + value.LastActivity + "</td">  +
                                    "<td>" + value.TotalActivity + "</td>"
                                    "</tr>";
                                SetData.append(Data);
    
                            });
                        }
                    }
                });
            });
        });
    </script>  

解决方法

在您的视图中,

搜索输入ID为{SearchLv}。

<input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search" id="SearchLv">

更改视图中的ID

<input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search" id="Search">

或者您可以更改javascript

var SearchValue = $("#SearchLv").val();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。