我希望创建一个可重用的ASP.NET MVC ViewUserControl,它是强类型的枚举。
能做到吗?当我尝试它时,它说viewUserControl可以接受的强类型只能是引用类型:(
这也意味着我不能将int作为tmodel传递。
我为什么要这样做?我在我的网站的不同地方,我显示了一个简单的图像,这取决于一个枚举。因此,我不希望在多个地方复制该逻辑,而是希望让这个可恢复的viewusercontrol在枚举中传递。
如。
public enum AnimalType
{
Cat,
Dog
}
// .. now code inside the view user control ...
switch (animalType)
{
case AnimalType.Cat: source = "cat.png"; text="cute pussy"; break;
... etc ...
}
<img src="<%=Url.Content("~/Images/" + source)%>" alt="<%=text%>" />
我想解决方案是不创建强类型的ViewUserControl(因为tmodel类型只能是class类型),然后执行以下操作。
<% Html.RenderPartial("AnimalFileImageControl", animalType); %>
在视图用户控件中…
AnimalType animalType = (AnimalType) ViewData.Model;
switch (animalType)
{ ... etc ... }
干杯: