2011-11-21 66 views
1

爲什麼我的viewModel不能繼承?我有以下的ViewModels:viewModel繼承無法在MVC中工作

public class BaseViewModel { 

    public BaseViewModel() { 
     Location = new Location { }; 
    } 
    public Location Location { get; set; } 

} 

public class EditViewModel : BaseViewModel { 
    public Book Book { get; set; } 
} 

在我的控制器:

 var viewModel = new EditViewModel 
     { 
      Book = new Book { Test = "ABC" }, 
      Location = { City = "AAA" } 
     }; 

當我檢查,看看有什麼視圖模型的樣子,然後我發現它不包含位置類,即使我的看法繼承來自BaseViewModel。任何人都可以看到這是爲什麼。我如何確保視圖包含位置?

+1

是您的視圖強類型使用EditviewModel而不是BaseViewModel – dreza

+0

待辦事項你的意思是它是'null'或者它不能在EditViewModel中找到? –

+0

我正在做的是用調試器檢查。我在創建viewModel的語句之後暫停。當我看到所有我看到的是var有一個EditViewModel類型,並且Book有一個元素。 –

回答

2

奇怪,因爲下面的編譯和我的作品只是罰款:

public ActionResult Index() 
{ 
    var viewModel = new EditViewModel 
    { 
     Book = new Book { Test = "ABC" }, 
     Location = new Location { City = "AAA" } 
    }; 
    return View(viewModel); 
} 

,並在視圖:

@model EditViewModel 
@Model.Location.City 
+0

達林 - 我標記你爲回答,因爲你花時間去嘗試。謝謝 –