C# 当model.item为空时显示错误消息
我在一个视图中显示两个局部视图。局部视图显示良好。 但是如果模型值为null,如何在我的局部视图中显示错误消息。 下面是我的代码: 控制器:C# 当model.item为空时显示错误消息,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我在一个视图中显示两个局部视图。局部视图显示良好。 但是如果模型值为null,如何在我的局部视图中显示错误消息。 下面是我的代码: 控制器: public ActionResult MyAccount(string email) { OrderModel objorder = new OrderModel(); var OrderDetails = objorder.GetOrderInfo(email);
public ActionResult MyAccount(string email)
{
OrderModel objorder = new OrderModel();
var OrderDetails = objorder.GetOrderInfo(email);
if(OrderDetails == null)
{
// ViewBag.Message = "You have not placed any orders.";
ModelState.AddModelError("NoOrders", "You have not placed any orders.");
return View();
}
CustomerModel objcustomer = new CustomerModel();
var CustomerDetails = objcustomer.GetCustomerInfo(email);
return View(Tuple.Create(OrderDetails, CustomerDetails));
}
看法
@模型元组
@Html.Partial(“MyOrders”)
@Html.Partial(“AccountInfo”)
局部视图1
@模型元组,IList>
@using (Html.BeginForm())
{
if (Model.Item1 != null) // Null reference unhandled by user code
{
<div>
@foreach(var item in Model.Item1)
{
@Html.DisplayFor(model => item.OrderID)
}
</div>
}
else
{
<p>@Html.ValidationMessage("NoOrders", new { @class = "msg" })</p>
}
}
@使用(Html.BeginForm())
{
if(Model.Item1!=null)//未经用户代码处理的null引用
{
@foreach(Model.Item1中的var项)
{
@DisplayFor(model=>item.OrderID)
}
}
其他的
{
@ValidationMessage(“NoOrders”,new{@class=“msg”})
}
}
我已传递要在部分视图1中处理的空值的验证消息。
但我收到的是未设置对象引用和未处理的空引用消息。我的代码有什么错误。?任何建议都会很有帮助您的
模型
为null
这:
在视图中创建null
模型。因此:
if (Model.Item1 != null)
// ^^^^^^ THIS IS NULL!
…行不通
你需要:
if (Model != null)
尽管我必须说。。你的应用程序逻辑/流程让我很难过。在MVC中实现这一点有多种方法。。传递
null
模型可能是更丑陋的方式之一。您的模型
是null
这:
在视图中创建null
模型。因此:
if (Model.Item1 != null)
// ^^^^^^ THIS IS NULL!
…行不通
你需要:
if (Model != null)
尽管我必须说。。你的应用程序逻辑/流程让我很难过。在MVC中实现这一点有多种方法。。传递
null
模型可能是更丑陋的方式之一。是的。它使元组的整个模型为null.Yes。它使元组的整个模型为null。