English 中文(简体)
你能创建一个强类型的ASP。净MVC ViewUserControl整型或枚举类型的吗?
原标题:
  • 时间:2009-03-22 00:26:44
  •  标签:

我想创建一个可重用的ASP。净MVC ViewUserControl强类型的枚举。

这个可以做吗?当我尝试它,它说,强类型ViewUserControl可以接受,只能引用类型:(

这也意味着我可以传递int作为TModel。

为什么我要这么做?我n不同地方的我的网站,我显示一个简单的图像是依赖一个枚举。而不是复制这一逻辑在多个地方,我希望这个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%>" /> 

我guessin不解决方案是创建一个强类型ViewUserControl(因为TModel类型只能类型的类),然后做下面. .

<% Html.RenderPartial("AnimalFileImageControl", animalType); %>

和ViewUserControl……

AnimalType animalType = (AnimalType) ViewData.Model;
    switch (animalType)
    { ... etc ... }

欢呼:)

最佳回答

好吧,你可以:

public sealed class Box<T> where T : struct {
    public Box(T value) { Value = value; }
    public T Value { get; private set; }
    public static explicit operator T(Box<T> item) {
        return item.Value; } // also check for null and throw an error...
    public static implicit operator Box<T>(T value) {
        return new Box<T>(value); }
}

和使用<代码> < int > < /代码>,<代码>框< MyEnum > > < /代码,等等,但就我个人而言,我希望这将是容易和简单地使用一个无类型的视图。

问题回答

暂无回答




相关问题
热门标签