我想做类似下面的事情。
//Controller
if(Session["UserId"]!=null) // If user is logged in
{
return View(db.Orders.ToList());
}
else
{
//return a error message on the same view
}
我该怎么做?
答案 0 :(得分:0)
理想情况下,您将使用视图模型,并在那里有一个错误消息属性。如果您没有使用视图模型,可以向ViewBag添加一个值并在视图中使用它:
if(Session["UserId"]!=null) // If user is logged in
{
return View(db.Orders.ToList());
}
else
{
ViewBag.ErrorMessage = "My error message";
}
在您的视图中,您可以在某处使用附加值:
<p>@ViewBag.ErrorMessage</p>
答案 1 :(得分:0)
不确定你是否仍然需要这个,但我要做的是抛出HttpException
并让我的ajax调用处理它。
示例:
try
{
// DO SOMETHING....
}
catch (Exception ex)
{
//Note: I use Bad Request status code for this example. You can choose what is specific for your needs...
throw new HttpException((int)HttpStatusCode.BadRequest, ex.Message, ex.InnerException);
}
答案 2 :(得分:0)
ModelState.AddModelError("Error", ex.Message);
有一个默认的验证摘要div,它显示遇到的异常。 否则,在创建自己的显示器时,最好使用Viewbag。