OrderHistoryページに移動しようとすると、このエラーメッセージが表示されます。ASP.NET MVCリポジトリおよびコントローラエラー
パラメータ辞書に、 'Mis324Assignments.Controllers.MusicController'の 'System.Web.Mvc.ActionResult History(Int32)'メソッドのnullable型 'System.Int32'のパラメータ 'Id'のnullエントリが含まれています。オプションのパラメータは、参照型、null可能型、またはオプションのパラメータとして宣言する必要があります。 パラメータ名:パラメータ
これは私のコントローラである:
public ActionResult History(int Id)
{
return View(mor.GetHistory(Id));
}
これは私のリポジトリです:
public List<MusicHistoryModel> GetHistory(int custID)
{
using (IDbConnection db = new SqlConnection(connectString))
{
string sql = @"SELECT OI.OrderId, OI.ASIN, OI.Qty, OI.Title, OI.Artist, OI.Price, O.OrderDate
FROM tblOrders as O join tblOrderItems as OI on O.OrderId = OI.OrderId
Where O.CustId = @custID";
List<MusicHistoryModel> history = db.Query<MusicHistoryModel>(sql,new { custID }).ToList();
return history;
}
}
これは私のビューです:
@model IEnumerable<Mis324Assignments.Models.MusicHistoryModel>
@{
ViewBag.Title = "History";
Layout = "~/Views/Music/_3ColLayout.cshtml";
}
<h2>Order History</h2>
@foreach (var item in Model)
{
<div class="row" style="padding:4px;">
<div class="col-md-2">
<img src="http://images.amazon.com/images//[email protected](item.ASIN).01._SCTHUMBZZZ_V1115763748_.jpg"
class='productImage' style="margin:0 0 5px 10px;" />
</div>
@item.OrderID
@item.OrderDate
@item.title
@item.artist
@item.price
@item.qty
</div>
}
これはつまり私のActionLinkのです履歴ビューにリダイレクト:
<form action="~/Music/History" method="post" class="enhancement">
<input type="submit" value="Order History*" /><br />
</form>
私のコントローラのint idを渡しています。私のリポジトリから情報を取得するために、そのint idをcustIDとして使用しています。私は、エラーメッセージが何もint型パラメータに何も渡していないと言っている理由を知らない。
履歴アクションを呼び出す場所でビューの実装を共有できますか? –
私は、履歴ページ –
にリダイレクトされているあなたのActionlinkを意味していますが、あなたのフォーム(action = "〜/ Music/History")でidを渡している場所はどこですか?それはあなたの全体のフォームですか? – KellyMarchewa