ASP.NET MVC 3呈现视图;多态性;使用DisplayFor(TBase o)类语法
使用ASP.NET MVC 3,我希望根据运行时提供的视图模型(或视图模型上的属性)的类型,向我的视图呈现不同的“模板”(即局部视图或您想要调用它们的任何内容) 我知道现成的ASP.NET MVC功能允许向提供给视图的viewmodel上的属性或字段添加UIHint属性,但据我所知,这不符合我的需要,因为我在运行时之前不知道所需的模板 AFAICT ASP.NET也不支持t类型的通用viewmodels,因此我的想法是采用ASP.NET MVC3源代码并编写我自己的DisplayFor方法,该方法接受viewmodel实例(由视图中的抽象基类型指定),该实例在运行时解析实际类型,并使用此方法按约定查找模板名称 这听起来可行/值得吗ASP.NET MVC 3呈现视图;多态性;使用DisplayFor(TBase o)类语法,asp.net,asp.net-mvc-3,views,Asp.net,Asp.net Mvc 3,Views,使用ASP.NET MVC 3,我希望根据运行时提供的视图模型(或视图模型上的属性)的类型,向我的视图呈现不同的“模板”(即局部视图或您想要调用它们的任何内容) 我知道现成的ASP.NET MVC功能允许向提供给视图的viewmodel上的属性或字段添加UIHint属性,但据我所知,这不符合我的需要,因为我在运行时之前不知道所需的模板 AFAICT ASP.NET也不支持t类型的通用viewmodels,因此我的想法是采用ASP.NET MVC3源代码并编写我自己的DisplayFor方法,该方
视图看起来是这样的(请注意,对于基类型的规范,将在运行时提供一个具体实例): 视图模型:
public class MyMagicalViewModel : MyViewModelBase {}
该视图的调用看起来是这样的:
...
return View("MyView", MyMagicalViewModel);
...
…这将返回与MyMagicalViewModelPartialView.cshtml相对应的html,您查看了吗
...
return View("MyView", MyMagicalViewModel);
...