在Strongly type View上需要帮助

时间:2010-01-12 03:55:04

标签: c# asp.net-mvc strong-typing

我正在关注ScottGU教程:一个简单的电子商务店面应用程序

http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx

我无法在强类型视图类别中从ViewData获取数据。

我真的不知道我做错了什么,因为我正在关注ScottGU教程。

我使用的是最新的MVC版本2,ScottGU教程基于第一个版本。

这是我的aspx代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" CodeBehind="Categories.aspx.cs" Inherits="System.Web.Mvc.ViewPage<List<MyStore.Models.Category>>" %>

<h2>Browse Products</h2>

<ul class = "categorylisting">

    <% foreach (var category in ViewData)
       { %>

        <li>
            <%=Html.ActionLink(category.CategoryName, new string { action = "List", category = category.CategoryName })%>
        </li>
    <% } %>

</ul>

这是我的Controller类:

[ControllerAction]
    public ActionResult Categories()
    {
        List<Category> categories = northwind.GetCategories();

        return View("Categories",categories);

    }

感谢您的帮助..

1 个答案:

答案 0 :(得分:1)

您需要使用ViewData的Model属性,例如ViewData.Model

所以你的代码变成了

 <% foreach (var category in ViewData.Model)
       { %>

        <li>
            <%=Html.ActionLink(category.CategoryName, new string { action = "List", category = category.CategoryName })%>
        </li>
    <% } %>

ViewData只是一个字典,其中Model包含您在案例列表中的View中设置的Generic类型的实例