2017-03-05 56 views
0

每當我嘗試訪問我的OrderHistory頁面時,都會收到此錯誤消息。ASP.NET MVC存儲庫和控制器錯誤

參數字典包含在「Mis324Assignments.Controllers.MusicController」參數非空類型「System.Int32」的方法「System.Web.Mvc.ActionResult歷史(的Int32)」的「ID」空條目。可選參數必須是引用類型,可爲空類型,或者聲明爲可選參數。 參數名:參數

這是我的控制器:

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 id參數

+0

你可以分享你的視圖實現你打電話給歷史行動嗎? –

+0

我的意思是,你的ActionLink從那裏您將會重定向到 –

+0

歷史頁我可以簡單地失蹤了,但如果在你的形式(用行動=「〜/音樂/歷史」),你傳遞ID?這是你的整個形式嗎? – KellyMarchewa

回答

0

在查看您的視圖實現時,您似乎沒有在歷史記錄操作所需的歷史記錄操作中傳遞id。

您可以按以下方式傳遞ID爲您的參數:

@using(Html.BeginForm("History", "Music", 
      new { Id= your_id_should_be_here }, FormMethod.Post, new{ @class="enhancement"}) 
{ 
     <input type="submit" value="Order History*" /><br /> 
} 
-2

我想通了!在我的Action鏈接上,我沒有傳入CustID參數。這就是爲什麼它沒有得到任何ID參數!

0

答案已經提交的把它作爲評論不是答案。