簡體   English   中英

ASP.NET MVC存儲庫和控制器錯誤

[英]ASP.NET MVC Repository and Controller Error

每當我嘗試轉到我的OrderHistory頁面時,都會收到此錯誤消息。

參數字典中包含“ Mis324Assignments.Controllers.MusicController”中方法“ System.Web.Mvc.ActionResult History(Int32)”的非空類型“ System.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//P@(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參數

當查看您的視圖實現時,似乎您沒有在“歷史記錄”操作中傳遞id,而“歷史記錄”操作需要該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 />
}

提交的答案已經作為注釋而不是答案。

我想到了!!! 在我的操作鏈接上,我沒有傳遞CustID參數。 這就是為什么它沒有獲取任何id參數的原因!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM