你调用的对象是空的

Ogn*_*jen 3 c# asp.net-mvc

在这行代码中

  <% var tmp = int.Parse(ViewData["numOfGroups"].ToString()); %>
Run Code Online (Sandbox Code Playgroud)

我有错误:Object reference not set to an instance of an object.如何正确转换

ViewData["numOfGroups"]int

Dar*_*rov 5

您应首先确保控制器操作正在设置此变量:

public ActionResult Index()
{
    ViewData["numOfGroups"] = "15";
    return View();
}
Run Code Online (Sandbox Code Playgroud)

一旦你完成了这个,你就不应该得到一个NullReferenceException,你的代码应该可行.

当然,正如我多次已经写在这里,你应该更喜欢强类型视图代替ViewData.您还应该相应地键入模型属性.解析字符串不是视图的责任.所以:

public ActionResult Index()
{
    var model = new MyModel
    {
        NumOfGroups = 15
    };
    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

在你看来:

<% var tmp = Model.NumOfGroups; %>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这也应该避免,因为我觉得你在视图中声明变量意味着你有意使用它们.视图不是用于声明变量和编写C#代码.它们是标记.