C# 访问ViewData时出现nullreferenceexception
控制器C# 访问ViewData时出现nullreferenceexception,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,控制器 public class DashboardController : Controller { // // GET: /Dashboard/ public ActionResult Index() { ViewData["PartnerID"] = GetPartnerID(); return View(); } public
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";
}
}
}
查看(仪表板/索引)
指数
我是MVC2的初学者。我读到部分视图(OutboundTranfers.ascx)应该可以作为副本访问ViewData。那么,为什么我在这里得到一个空引用?不要在Index()中设置
ViewData[“PartnerID”]
,尝试为控制器创建一个构造函数,并在其中设置如下值:
public DashboardController()
{
ViewData["PartnerID"] = GetPartnerID();
}
ViewData
可能不为空--ViewData[“PartnerID”]
为空。(该项不在视图数据中
)此外,您可以在一个操作中设置PartnerID
数据,然后在另一个操作中获取它<代码>视图数据不会跨请求/操作保留
(从评论转到回答…@Kirk:这看起来很像answer@Henk是的,我想你是对的。移动了。这确实告诉了我发生错误的原因。也许以我的技术水平,我缺乏远见,但这并不能帮助我解决保持状态的问题。
public DashboardController()
{
ViewData["PartnerID"] = GetPartnerID();
}