MVC3 Как получить доступ к этому коду из поля зрения? - PullRequest
0 голосов
/ 04 марта 2012

В разделе бритвы

@{
 Like This
}

Мне нужно иметь возможность вызывать функцию c #

static T Cast<T>(object o)
{
 return (T)o;
}

Для динамического приведения объекта. Как я могу получить доступ к этому коду?

Я бы хотел сделать это

someObject = Cast<someType>(someObject);

Редактировать

Я пытаюсь реализовать универсальную модель представления.

Вот модель:

public class GenericVM<TEntity> where TEntity : class
{
    public List<TEntity> Entities { get; set; }
    public object Entity { get; set; }
    public Type Type { get; set; }
}

Я заполняю объект GenericVM в контроллере, а затем передаю его в представление с @model dynamic.

Оказавшись в представлении, я пытаюсь использовать тип из объекта для динамического приведения модели обратно к нужному типу.

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Можете ли вы поместить его в расширение HTML?

public static T Cast<T>(this HtmlHelper helper, object o)
{
    return (T)o;
}

Тогда просто:

Html.Cast<string>(someString)

С вашей точки зрения.Я использую здесь строку в качестве примера использования, просто измените тип вашей модели.

1 голос
/ 04 марта 2012

Можно просто разыграть его или я что-то упустил?

@{
    var someObject2 = (someType)someObject;
}

или

@{
    var someObject2 = someObject as someType;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...