控制器
public class DashboardController : Controller
{
//
// GET: /Dashboard/
public ActionResult Index()
{
ViewData["PartnerID"] = GetPartnerID();
return View();
}
public ActionResult OutboundTransfers()
{
var partnerId = ViewData["PartnerID"].ToString();//NULL EXCEPTION
InventoryEntities context = new InventoryEntities();
var result = context.GetOutboundTransfers(partnerId);
//var result = context.GetOutboundTransfers("3000017155");
return View(result);
}
private static string GetPartnerID()
{
return "3000017155";
}
}
}
查看(信息中心/索引)
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<%= Html.Action("OutboundTransfers")%>
</asp:Content>
我是MVC 2的初学者。我读取ViewData应该可以作为副本访问局部视图(OutboundTranfers.ascx)。那么,为什么我在这里得到一个空引用?
答案 0 :(得分:1)
不要在Index()中设置ViewData["PartnerID"]
,而是尝试为控制器创建一个构造函数,并将值设置为:
public DashboardController()
{
ViewData["PartnerID"] = GetPartnerID();
}
答案 1 :(得分:1)
ViewData
可能不为空 - ViewData["PartnerID"]
为空。 (该项目不在ViewData
)此外,您在一个操作中设置PartnerID
数据,在另一个操作中获取它。请求/操作之间不保留ViewData
。
(将评论移出答案......)