私はマスターページでビューを持っています。ASP.Net MVC - モデルとユーザーコントロール
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BudgieMoneySite.Models.SiteUserLoginModel>" %>
このユーザーコントロールは、すべての画面(マスターページの一部)に表示されます。ユーザーがログインしている場合は、特定のテキストが表示され、ユーザーがログインしていない場合は、ログインボックスが表示されます。
これで問題なく動作します。
今、最初の機能画面を追加しています。だから私は新しいビューを作成しました...そして、コントローラメソッドを選択すると、基本的なビューコードが生成され、「ビューの作成」と呼ばれました。
public ActionResult Transactions()
{
List<AccountTransactionDetails> trans = GetTransactions();
return View(trans);
}
private List<AccountTransactionDetails> GetTransactions()
{
List<AccountTransactionDto> trans = Services.TransactionServices.GetTransactions();
List<AccountTransactionDetails> reply = new List<AccountTransactionDetails>();
foreach(var t in trans)
{
AccountTransactionDetails a = new AccountTransactionDetails();
foreach (var line in a.Transactions)
{
AccountTransactionLine l = new AccountTransactionLine();
l.Amount = line.Amount;
l.SubCategory = line.SubCategory;
l.SubCategoryId = line.SubCategoryId;
a.Transactions.Add(l);
}
reply.Add(a);
}
return reply;
}
はそう、私の見解はこれで生成されました:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Collections.Generic.List<BudgieMoneySite.Models.AccountTransactionDetails>>" %>
見つかり<% = Model.Count()%>取引
私のコントローラは、このコードを持っています。
私が今表示したいのは、表示するレコードの数だけです。
私はそれを実行すると、私はエラーを取得:
「辞書に渡されるモデルアイテムはタイプ 『System.Collections.Generic.List`1 [BudgieMoneySite.Models.AccountTransactionDetails]』であるが、これ辞書には、 'BudgieMoneySite.Models.SiteUserLoginModel'タイプのモデルアイテムが必要です。
ユーザーコントロールが最初にレンダリングされているように見えます。コントローラーのモデルがマイリスト<>のように表示されています。
私は間違っていますか?
ありがとうTom!それは何とか働いた。どのように考えているのかわからないので、今分析しようと思っています...しかし、ありがとう! – Craig