1

我在我的 mvc 应用程序中编写了以下代码。

public class TestController : Controller
{
    public ActionResult StronglyTypedView()
    {
      var obj = new MvcRouting.Models.Student();
      obj.age = 24;
      obj.name = "prab";
      ViewData.Model = obj;
      return View();
    }
}

在上面的代码中,ViewData是类的属性,是ControllerBaseModel的属性。ViewDataDictionary我在下面的代码中尝试过同样的事情,但是我在 property1 中得到空值,如何解决这个问题?

 public interface Iface1
 {       
    int age { get; set; }
 }
 public class classA : Iface1
 {       
   public int age { get; set; }
 }
 public abstract class classB
 {       
    public classA Property1 { get; set; }
 }
 public class TEST : classB
 {
   public void test()
   {          
      Property1.age = 24;
   }
   public static void Main()
   {
     TEST obj = new TEST();
     obj.test();
     Console.Read();
   }
 }
4

3 回答 3

3

Property1你得到空引用异常,因为你需要初始化classB

 public interface Iface1
 {       
    int age { get; set; }
 }
 public class classA : Iface1
 {       
   public int age { get; set; }
 }
 public abstract class classB
 {       
    public classA Property1 { get; set; }
 }
 public class TEST : classB
 {
   public void test()
   {    
      if(Property1 == null)
      {
          Property1 = new classA();
      }

      Property1.age = 24;
   }
   public static void Main()
   {
     TEST obj = new TEST();
     obj.test();
     Console.Read();
   }
 }
于 2013-09-17T05:58:41.200 回答
1

改用这个。

public abstract class classB
{
 public classA Property1 { get; set; }

 public classB()
 {
   Property1 = new classA();
 }
}
于 2013-09-17T06:06:53.193 回答
0

您忘记Property1在设置其属性之前对其进行初始化。

public class TEST : classB
{
   public void test()
   {    
      Property1 = new classA();
      Property1.age = 24;
   }
   public static void Main()
   {
     TEST obj = new TEST();
     obj.test();
     Console.Read();
   }
}
于 2013-09-17T06:00:27.223 回答