2010-04-11 2 views
0

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

Также что такое TModel, связанное с viewdata? Как использовать TModel? viewdata explanation in spark view engine говорит о TModel, и я не мог понять, как я могу использовать его в своих проектах. Кто-нибудь может мне помочь?

+0

Этот вопрос касается ASP.NET MVC или о программе Spark View Engine? Потому что термин «Просмотр данных» имеет несколько разное значение между ними. – Aaronaught

+0

@ На самом деле я смущен. Объяснение в обоих смыслах мне очень поможет. –

+0

http://www.asp.net/learn/mvc-videos/video-9139.aspx –

ответ

2

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

<%=ViewData.Model.Description %> 

или

<%=Model.Description %> 

что, если класс что вы переходите к виду, содержит свойство Описание:

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

с этим MyContent Класс

MyContent 
{ 
    string id; 
    string description; 
} 

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

1

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

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

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

А затем получить доступ к нему на ваш взгляд:

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

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

Смежные вопросы