簡體   English   中英

導致我的System.OutOfMemoryException的url.action和@ html.PageLinks行

[英]url.action and @html.PageLinks lines causing my System.OutOfMemoryException

我是一個有抱負的初級開發人員,當前正在關注Adam Freeman撰寫的PRO ASP.NET MVC 5。 在創建自己的模板應用程序版本時,我非常喜歡以下示例並學習。 但是,最近我遇到了一個非常煩人的問題,我盡力鼓勵自己不要在StackOverflow上詢問它,因為它可能已經被詢問過。

我目前正在這本書的第7章,創建一家體育用品商店。 我遇到的主要問題是找出為什么每次在Divs中使用@ Html.PageLinks時都會出現System.OutOfMemoryException的原因。 每當我注釋掉那些Pagelinks行時,該應用程序都像一個超級按鈕。 我嘗試遵循Microsoft提供的所有解決方案以及其他類似論壇的問題,例如此html helper鏈接此其他鏈接和Microsoft官方頁面(support.microsoft.com/en-us/kb/820108)。 我一遍又一遍地檢查代碼,以檢查它是否與書中的代碼相同。 抱歉,如果您已經回答了這個特定問題,但找不到任何幫助的方法。

List.cshtml

@model TheKicks.WebUI.Models.ProductsListViewModel
@using TheKicks.WebUI.HtmlHelpers;
@using TheKicks.WebUI.Models

@{
    ViewBag.Title = "Products";
}
@foreach (var p in Model.Products)
{
    @Html.Partial("ProductSummary", p)
}

<div class= "btn-group pull-right">
    @Html.PageLinks(Model.PagingInfo, x => Url.Action("List",
    new { page = x, category = Model.CurrentCategory }))
</div>

<div class="pager">
    <div>
        @Html.PageLinks(Model.P‌​agingInfo, x => Url.Action("List", new { page = x }))
    </div>

</div>

PagingHelpers.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using TheKicks.WebUI.Models;

namespace TheKicks.WebUI.HtmlHelpers
{
    public static class PagingHelpers
    {
        public static MvcHtmlString PageLinks(this HtmlHelper html,
                                                    PagingInfo pagingInfo,
                                                    Func<int, string> pageUrl)
        {
            StringBuilder result = new StringBuilder();
            for (int i = 1; 1 <= pagingInfo.TotalPages; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", pageUrl(i));
                tag.InnerHtml = i.ToString();
                if(i == pagingInfo.CurrentPage)
                {
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                result.Append(tag.ToString());
           }
            return MvcHtmlString.Create(result.ToString());
        }
    }
}

如果我錯過了任何事情,對於給您帶來的不便,我必須深表歉意,因為我可能沒有注意正確的地方。 我在尋求幫助時遇到了大問題,這是我第一次。

謝謝

1 <= pagingInfo.TotalPages始終為true,因此循環將無限期運行,直到內存用盡。 用i變量替換1。

暫無
暫無

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

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