【问题标题】:Need help on Strongly type View在强类型视图上需要帮助
【发布时间】:2011-01-04 00:49:40
【问题描述】:

我正在关注 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>

这是我的控制器类:

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

        return View("Categories",categories);

    }

感谢您的帮助..

【问题讨论】:

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


    【解决方案1】:

    您需要使用 ViewData 的 Model 属性,例如视图数据模型

    所以你的代码变成了

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

    ViewData 只是一个字典,其中模型包含您在案例列表中的视图中设置的通用类型的实例

    【讨论】:

    • 我试过 ViewData.Model :同样的结果。我无法获取 category.CategoryName。它说:不包含'CategoryName'的定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2011-06-23
    • 2014-11-04
    相关资源
    最近更新 更多