草庐IT

关于导致我的 System.OutOfMemoryException 的 c#:url.action 和 @html.PageLinks 行

codeneng 2023-03-28 原文

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

我是一名有抱负的初级开发人员,目前正在关注 Adam Freeman 的 PRO ASP.NET MVC 5 书籍。当我创建自己的模板应用程序版本时,我非常享受遵循示例和学习的过程。然而,我最近遇到了一个非常烦人的问题,我尽力鼓励自己不要在 StackOverflow 上问它,因为它可能已经被问到了。

我目前正在阅读本书的第 7 章,创建一家体育用品商店。我陷入困境的主要部分是找出为什么每当我在我的 Div 中使用 @Html.PageLinks 时都会得到 System.OutOfMemoryException。每当我注释掉这些 Pagelinks 行时,该应用程序就像一个魅力。我尝试关注 Microsoft 提供的所有解决方案以及其他类似的论坛问题,例如此 html 帮助链接、此其他链接和 Microsoft 官方页面 (support.microsoft.com/en-us/kb/820108)。我一遍又一遍地检查我的代码,以检查它是否与书中的相同。如果这个特定问题已经得到解答,我很抱歉,但我找不到可以帮助我的东西。

List.cshtml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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)
}


    @Html.PageLinks(Model.PagingInfo, x => Url.Action("List",
    new { page = x, category = Model.CurrentCategory }))



   
        @Html.PageLinks(Model.P??agingInfo, x => Url.Action("List", new { page = x }))

PagingHelpers.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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());
        }
    }
}

如果我错过了什么,我必须为给您带来的不便深表歉意,因为我可能没有找对地方。我有一个大问题寻求帮助,这是我第一次。

谢谢

  • 循环 for (int i = 1; 1 <= pagingInfo.TotalPages; i++) 中的错字会导致无限循环。修改为 for (int i = 1; i <= pagingInfo.TotalPages; i++)
  • @MikeDebela 我猜你有问题。但它应该是 for (int i=1; i < pagingInfo.TotalPages; i++) 吗?
  • @SivaGopal OP 使用的条件是 1 <= ... 。应该是 i <= ...
  • 非常感谢你们,我现在感觉很盲目哈哈,@SivaGopal 我相信这本书也有这样的条件部分,虽然不知道为什么,但也许它与确保制作尽可能多的按钮有关?再次感谢各位!
  • @AbdulAl-haj 技术书籍经常包含错误。通常,出版商会在其网站上发布勘误和更正。但是,我没有在本书的勘误表中看到您的错误。


1 <= pagingInfo.TotalPages 始终为真,因此您的循环将无限期地运行,直到内存不足。将 1 替换为 i 变量。

  • 谢谢大家,我正在绞尽脑汁想我做错了什么。好消息是在我尝试修复它时了解了其他事情!

有关关于导致我的 System.OutOfMemoryException 的 c#:url.action 和 @html.PageLinks 行的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  3. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  4. ruby-on-rails - rails : How to make a form post to another controller action - 2

    我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak

  5. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  6. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  7. ruby-on-rails - 如何在 Rails Controller Action 上触发 Facebook 像素 - 2

    我有一个ruby​​onrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素

  8. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  9. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  10. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

随机推荐