On my browse page, both seem to work. But for @Model visual studio tells me this WebViewPage<T>.Model , and for @ViewData.Model - ViewDataDictionary<T>.Model . So what is the real difference?
@Model
WebViewPage<T>.Model
@ViewData.Model
ViewDataDictionary<T>.Model
There is no difference. In fact, WebViewPage<T>.Model just calls ViewData.Model .
ViewData.Model
You can check the implementation on codeplex :
public abstract class WebViewPage<TModel> : WebViewPage { //... public new TModel Model { get { return ViewData.Model; } } //... }