열거 형에 강력하게 형식화 된 재사용 가능한 ASP.NET MVC ViewUserControl을 만들고 싶습니다.int 또는 enum 유형의 강력한 형식의 ASP.NET MVC ViewUserControl을 만들 수 있습니까?
이 작업을 수행 할 수 있습니까? 내가 그것을 시도 할 때, ViewUserControl는 받아 들일 수 강한 타입 만이 또한 내가의 tModel로 int를 통과 할 수 없음을 의미
참조 형식 :(이 될 수 있다고 말한다.
왜 내가 원하는 않습니다 여러 사이트에서 해당 논리를 복사하는 대신 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%>" />
내가 번지 해요 솔루션을 essin 것은 .. 다음을 수행 한 후 (의 tModel 유형은 유형 클래스 될 수 있기 때문에) 강력한 형식의 ViewUserControl을 만들고 NOT하는 것
<% 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); }
}
및를 사용
환호 :) 잘
re : untyped보기 - 동일. 그게 내가 함께 갈거야. 구조체를 만드는 것을 잊어 버렸습니다 : P 좋은 생각, 강하게 입력하고 싶다면. 다시 한 번 감사드립니다. Marc :) –