【发布时间】:2017-08-02 16:24:27
【问题描述】:
我想创建一条错误消息,以便在抛出 DbNullException 时显示在浏览器上。
当用户输入正确的MemberId 时,就会出现正确的结果。但是,当用户输入不正确的MemberId 时,会抛出NullReferenceException。
查询:
[HttpGet]
public ActionResult LoanSearch(string q)
{
if (q == null)
{
throw new Exception("Enter");
}
else
return PartialView(loans);
}
public List<Loan> GetLoans(string searchString)
{
var loan = db.Loans
.Where(a => a.ISBN.ToString().Contains(searchString) &&
a.Book.OnLoan == 1)
.OrderByDescending(a => a.LoanId)
.FirstOrDefault();
return new List<Loan> { loan };
}
我最初执行以下操作,但这是 aDbNullExceptionoccurs:
[HttpGet]
public ActionResult LoanSearch(string q, Member loanss)
{
var loans = GetLoans(q, loanss);
return PartialView(loans);
}
public List<Loan> GetLoans(string searchString, Member loanss)
{
loanss.errorM = "enter correct member id";
var loan = db.Members.Where(a => a.MemberId.ToString()
.Contains(searchString) &&
a.Book.OnLoan == 1)
.OrderByDescending(a => a.LoanId)
.FirstOrDefault();
if (loan != null)
{
return new List<Member> { loan };
}
else
{
return new List<Member> { loanss };
}
}
总之,我希望出现一条错误消息,而不是抛出 an exception 错误,我不知道如何实现这一点。感谢您的宝贵时间
这是我的 ajax:
div class="panel panel-default">
<div class="panel-heading">Please enter the ISBN Number of the book</div>
<div class="panel-body">
@using (Ajax.BeginForm("LoanSearch", "BookReturn",
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET",
OnFailure = "searchFailed",
LoadingElementId = "ajax-loader",
UpdateTargetId = "searchresult",
}))
{
<input type="text" name="q" />
<input type="submit" value="search" />
<img id="ajax-loader"
src="@Url.Content("~/Images/ajax-loader.gif")"
style = "display:none" />
}
<div id="searchresult"></div>
</div>
</div>
这是错误所在:在部分视图中-@item.Member.Name:
foreach (var item in Model)
{
<div class="text-center">
<br />
<p>Member Name: @item.Member.Name</p>
<p>Book Title: @item.Book.Name</p>
<p>Book Author: @item.Book.Author</p>
<p>Checkout Date: @item.CheckOutDate</p>
<p>Return Date: @item.ReturnDate</p>
<br />
}
【问题讨论】:
标签: c# sql-server asp.net-mvc error-handling asp.net-ajax