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は、クラスのプロパティであり、ControllerBaseクラスのプロパティです。次のコードで試したのと同じですが、プロパティ1でnull値を取得しています。これを解決するにはどうすればよいですかModel?ViewDataDictionary

 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初期化する必要があるため、null参照例外が発生しています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 に答える