asp.net MVC中的ViewData。*和TModel

时间:2010-04-11 18:25:41

标签: c# asp.net-mvc asp.net-mvc-2 viewdata

经过一周的asp.net mvc2,我仍然没有理解ViewData.model的优点,或者说我是如何正确使用Viewdata的。有人可以教我如何正确使用Viewdata吗?

与viewdata相关的TModel是什么?如何使用TModelviewdata explanation in spark view engine谈到TModel,我无法弄清楚如何在项目中使用它。有人能帮助我吗?

2 个答案:

答案 0 :(得分:2)

ViewData.Model可以在控制器操作中设置并传递给View,您可以像这样访问它

<%=ViewData.Model.Description %>

<%=Model.Description %>

也就是说,如果要传递给View的类包含属性Description:

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

使用此MyContent类

MyContent
{
    string id;
    string description;
}

基本上你发送一个类的实例(一个具有其属性设置的对象,很可能是从数据库中获取)回到View并在View中显示其数据,View是ascx或aspx文件,最终得到显示给用户/访客。这是一个非常简单的例子,但目前还不清楚你想要什么以及你已经知道多少。但是现在尝试离开Spark(和其他View Engines),直到你很好地了解ASP.NET MVC的基础知识。

答案 1 :(得分:1)

Mare是正确的,您可以通过访问ViewData.ModelName.PropertyName项来在视图中使用模型。

同样在控制器中,您可以在ViewData字典中设置某些键/值对:

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

然后在您的视图中访问它:

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

显然,使用键/值对来处理所有数据并不理想,这就是为什么你可以创建自己的类来封装数据,并将THOSE传递给你的视图以便于操作。