ViewData. * И TModel в asp.net MVC

После недели использования asp.net mvc2 я все еще не понял преимуществ ViewData.model или, скорее, того, как я могу правильно использовать Viewdata. Может кто-нибудь научит меня правильно пользоваться Viewdata?

И что TModel связано с данными просмотра? Как использовать TModel? объяснение данных просмотра в движке искрового просмотра говорит о TModel, и я не мог понять, как я могу использовать его в своих проектах. Кто-нибудь может мне помочь?


person Quintin Par    schedule 11.04.2010    source источник
comment
Это вопрос об ASP.NET MVC или о движке Spark View? Потому что термин «Просмотр данных» имеет несколько разное значение.   -  person Aaronaught    schedule 11.04.2010
comment
@Aaronaught на самом деле я запутался. Объяснение в обоих смыслах мне очень поможет ..   -  person Quintin Par    schedule 11.04.2010


Ответы (2)


ViewData.Model - это то, что вы можете установить в действии контроллера и передать в View, где вы можете получить к нему доступ, как это

<%=ViewData.Model.Description %>

or

<%=Model.Description %>

то есть, если класс, который вы передаете в представление, содержит описание свойства:

public ActionResult GetInstance(string id)
{
    MyContent content = GetContentFromDatastore(id);
    return View(content);
}

с этим классом MyContent

MyContent
{
    string id;
    string description;
}

В основном вы отправляете экземпляр класса (объект с установленными свойствами, скорее всего, взят из базы данных) обратно в представление и отображаете его данные в представлении, причем представление является файлом ascx или aspx, который в конечном итоге отображается в пользователь / посетитель. Это очень простой пример, но непонятно, чего именно вы хотите и сколько вы уже знаете. Но постарайтесь пока не обсуждать Spark (и другие механизмы просмотра), пока вы хорошо не изучите основы ASP.NET MVC.

person mare    schedule 11.04.2010

Маре прав, вы можете использовать свои модели в своем представлении, обратившись к элементу ViewData.ModelName.PropertyName.

Кроме того, в вашем контроллере вы можете установить определенные пары ключ / значение в словаре ViewData:

ViewData["Address1"] = "2222 Somewhere";

А затем откройте его в своем представлении:

<%= Html.Encode(ViewData["Address1"]) %>

Очевидно, было бы не идеально использовать пару ключ / значение для обработки всех ваших данных, поэтому вы можете создавать свои собственные классы для инкапсуляции данных и передавать THOSE в ваше представление для упрощения манипуляций.

person Jack    schedule 13.04.2010