1

我的问题与这个ASP.NET MVC View throwing CS1061 error 与作为 ViewDdata 传递给视图的模型对象类型相关,但我的声誉很小,无法在此处添加评论,并且当我将我的问题添加为“答案”时' 它已被删除......所以请阅读上面提到的问题(线程)及其答案。我按照建议的步骤操作,但由于以下错误,它对我不起作用:

(我将发布屏幕截图向您展示代码和错误。与 Howiecamp 的代码相比,变量的名称等发生了变化,但其余部分相同,因为它与该教程中的步骤相同。)

好的,这就是当我在“foreach”循环中有“ViewData”时发生的情况:截图 1

i如果我按照您的指示将其更改为“模型”,Visual Studio 突然无法理解“foreach”:屏幕截图 2

如果我按照您的建议将“IEnumerable”放在第一行,它确实可以理解,但是之后它会停止识别“Html.ActionLink”:屏幕截图 3:edge.imgur.com/wcgtI.jpg(对不起,作为一个新用户,我只能发布 2 个超链接 :| )

在这种情况下我该怎么办?

4

1 回答 1

0

其实我在开头提到的那篇文章的评论中找到了我的答案(我一定是瞎了眼没有看到它......)

对不起大家打扰了。但是,由于我花费了您的一些时间,所以我可能还会为这个问题提供正确的答案(这给了本杰明·安德森,如果可以的话,我会给他声誉点,这在这里非常宝贵:))所以如果其他人遵循该教程并停留在同一个阶段,他会在这里找到答案。

显然问题的原因是 Scott 当时使用的是旧版本的 MVC。所以如果你想让这个工作你必须:

1)而不是“ViewData”把“模型”

代替

foreach (var kategoria in ViewData)

foreach (var kategoria in Model)

2)在第一行你必须添加 >

代替

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SklepAlfa.Models.Kategorie_produktow>" %>

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<SklepAlfa.Models.Kategorie_produktow>>" %>

3)改变你的 ActionLink 定义!

代替

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

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

情况就是这样。

于 2011-05-25T09:08:31.793 回答