1

私の質問は、ビューにViewDdataとして渡されたモデルオブジェクトのタイプに関連するCS1061エラーをスローするこの1つのASP.NET MVCビューと厳密に関連していますが、私の評判は小さすぎてそこにコメントを追加できず、質問を「回答」として追加したとき' 削除されました... ので、上記の質問 (スレッド) とそれに対する回答をお読みください。提案された手順に従いましたが、次のエラーのために機能しませんでした。

(コードとエラーの両方を示すスクリーンショットを投稿します。変数の名前などは、Howiecamp のコードと比較して変更されていますが、チュートリアルの同じステップであるため、残りは同じです。)

これは、「foreach」ループに「ViewData」がある場合に発生することです:スクリーンショット 1

iご指示通り「Model」に変更したら、いきなりVisual Studioが「foreach」を認識しなくなりました:スクリーンショット2

あなたが提案したように「IEnumerable」を最初の行に入れればそれを理解しますが、その後「Html.ActionLink」の認識を停止します: スクリーンショット 3: edge.imgur.com/wcgtI.jpg (申し訳ありませんが、新しいユーザーとして私はハイパーリンクは 2 つしか投稿できません :| )

この場合、どうすればよいですか?

4

1 に答える 1

0

実は、最初に言及していたその記事のコメントに私の答えが見つかりました(私はそれを見ないように盲目だったに違いありません...)

皆様、お騒がせして申し訳ありません。しかし、私はあなたの時間を少し取ったので、この問題に対する正しい答えも与えるでしょう(これはベンジャミン・アンダーソンに与えられました。できれば、ここで非常に貴重な評判ポイントを彼に与えます:))したがって、他の誰かがそのチュートリアルに従った場合そして同じステージに立ち往生し、彼はここで答えを見つけました。

どうやら問題の原因は、当時 Scott が古いバージョンの MVC を使用していたためだったようです。したがって、これを機能させたい場合は、次のことを行う必要があります。

1)「ViewData」の代わりに「Model」を入れます

それ以外の

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 に答える