1

このような問題を抱えたトピックをたくさん見てきましたが、私のものは見つかりませんでした。このエラーの後、ソースを指定します。

    @{
Line 4:      ViewBag.Title = "Edit product: " + @Model.Name;
Line 5:      Layout = "~/Views/Shared/_MasterLayout.cshtml";
Line 6:  
}

ビューから自分の製品の名前をクリックした後に発生します

@Html.ActionLink(item.Name, "Edit", new { item.ProductID })

リンクは

http://localhost:31363/Master/Edit?ProductID=1

また、リンクを手動で編集すると、自分のビューを見ることができません。

http://localhost:31363/Master/Edit/1

できます。では、最初の方法で、または2番目の方法で自動的に機能させるには、何を修正する必要がありますか? 現在、特別なルートはありません。Mvc4 アプリケーションに付属するデフォルトのルートです。

4

1 に答える 1

0

これで問題は解決するはずです:

@Html.ActionLink(item.Name, "Edit", new { id = item.ProductID })

説明

コードでは、ProductID パラメーターを使用してリンクを作成しています。

@Html.ActionLink(item.Name, "Edit", new { item.ProductID })

に等しい:

@Html.ActionLink(item.Name, "Edit", new { ProductID = item.ProductID })

デフォルト ルートには ProductID という名前のパラメーターがないため、クエリ文字列に追加されます。また、編集アクションには、おそらく次のような id という名前の整数パラメーターがあります。

public ActionResult Edit(int id)

このパラメーターはオプションでもヌル可能でもないため、リクエストをこのアクションにマップできず、エラーが発生します。したがって、ASP.NET MVC はそれ自体を把握できないため、パラメーター名は重要です。

于 2012-11-10T12:00:56.133 に答える