如何解决返回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 举报,一经查实,本站将立刻删除。