小编Jam*_*ack的帖子

MemoryCache Empty:设置后返回null

我有一个使用新的.NET 4 System.Runtime.Caching MemoryCache的MVC 3应用程序的问题.我注意到在看似无法预测的时间之后,它会停止缓存,并且表现得像空的一样.考虑一下我直接从ASP.NET MVC中的测试View获取的代码:

MemoryCache.Default.Set("myname","fred", new CacheItemPolicy() { SlidingExpiration = new TimeSpan(0,5,0) });
Response.Write(MemoryCache.Default["myname"]);
Run Code Online (Sandbox Code Playgroud)

当它工作时,可预测的"fred"被打印出来.但是,当问题开始出现时,尽管如此Set(),值为MemoryCache.Default["myname"]null.我可以通过在线上设置断点Response.Write()并使用立即窗口直接设置和读取缓存来证明这一点- 它不会设置它并保持为空!让它再次运行的唯一方法是使AppDomain回收.

有趣的是,当应用程序正常工作时,我可以通过打破Response.Write()线路并运行来激发问题MemoryCache.Default.Dispose().之后,MemoryCache.Default本身不为null(为什么会这样?),但不保存任何设置.它不会导致任何错误,但不会保存任何内容.

任何人都可以验证并解释吗?我相信我已经发现,当应用程序停止工作时,有些东西是Disposing MemoryCache.Default,但这不是我!


UPDATE

好吧,我现在厌倦了这个问题!CLRProfiler似乎不适用于MVC 3.SciTech的CLR工具很好 - RedGate ANTS也是如此.但他们告诉我的只是MemoryCache对象被某些东西处理掉!我还证明了(通过时间戳打印)我的页面上应该被缓存的部分视图(由OutputCacheAttribute指定)在几分钟后停止缓存 - 它会在每次调用页面时开始刷新.为了澄清环境,我直接在运行Win 7 Ultimate的开发工作站上的IIS 7.5服务器上运行.上面提到的内存工具表明我在播放对象方面只使用了大约9mb的内存.

无奈之下,我已经改变了我的缓存代码,首先搜索环境HttpContext以挂钩并使用其缓存功能(如果有的话).早期测试显示这是可靠的,但感觉就像一个讨厌的黑客.

我觉得MemoryCache和OutputCache不能保证与MVC 3一起工作......

.net asp.net asp.net-mvc caching memorycache

51
推荐指数
2
解决办法
2万
查看次数

在MVC/ASP.NET MVC中正确使用Model vs Controller

我有一个Service类,其方法名为GetProducts().这封装了业务逻辑并调用存储库以获取产品列表.

我的MVC视图想要将该产品列表显示为MVC SelectList.这个逻辑的正确位置在哪里.我似乎有3个选择:

  1. 模型

    Model应该公开一个名为的属性ProductSelectList.当View调用此属性的getter时,Model应该Service.GetProducts()在传递之前调用并将结果转换为SelectList.

    合理的论点:Model应该调用业务逻辑和存储库.视图应仅提供预定数据.除了将上下文数据传递给模型外,不应涉及Controller.

  2. 视图

    视图应包含Service.GetProducts()直接调用的代码,并将结果转换为内联的SelectList.

    合理的参数:View应直接调用此数据,因为它专门用于View.没有必要涉及模型或控制器,因为我们无论如何都在调用抽象的服务方法,所以其他任何东西都会增加额外的开销.

  3. 调节器

    Controller应该调用Service.GetProducts(),将结果转换为SelectList并将其传递给Model,该Model应该包含一个简单的ProductSelectList属性.View将访问此属性以进行渲染.

    合理的参数:Controller知道要向Service方法提供哪些参数,因此它应该进行调用.模型应该是一个简单的数据占位符,由Controller填充.View的工作是简单地从Model中呈现数据.

我有一种感觉,正确的答案是模型,但其他两个做出了一些合理的观点.也许我已经拥有了一个与模型分开的服务类,这使得水域变得混乱了?

有人愿意分享他们的意见吗?这只是品味问题吗?

model-view-controller asp.net-mvc

28
推荐指数
3
解决办法
2万
查看次数

在文本周围添加笔划 - 在外面 - 用css?

我有以下HTML和CSS:

body { background-color: gray; }
h1 {
  color: white;
  font-size: 2.5em;
}
Run Code Online (Sandbox Code Playgroud)
<h1>WHAT CARRER SHOULD YOU HAVE ?</h1>
Run Code Online (Sandbox Code Playgroud)

哪个呈现如下:

在此输入图像描述

我想在它周围添加一个笔划,这意味着围绕这些文本的黑色边框.
我用Google搜索并找到了-webkit-text-stroke,并想出了:

body { background-color: gray; }
h1 {
  color: white;
  font-size: 2.5em;
  -webkit-text-stroke: 2px black;
}
Run Code Online (Sandbox Code Playgroud)
<h1>WHAT CARRER SHOULD YOU HAVE ?</h1>
Run Code Online (Sandbox Code Playgroud)

但是,效果不是我想要的:

在此输入图像描述

正如你所看到的,似乎行程添加里面的文字,使文字看起来太瘦了我.

如何在文本之外进行笔划?

小提琴:http://jsfiddle.net/jpjbk1z7/

PS:只需要webkit支持

html css

15
推荐指数
6
解决办法
3万
查看次数

MVC DropDownListFor()所选项目未选中/必需验证未运行

我无法让我的DropDownList将所选项目设置为模型中的值.

模型中的字段只是用户名称标题的字符串(Mr,Miss等..)以下是我的代码.

<td>
@{ var list = new List<SelectListItem>(new[] {                    
    new SelectListItem{ Selected = string.IsNullOrEmpty(Model.Title), Text="",Value=""},
    new SelectListItem{ Selected = Model.Title.Equals("Mr"), Text="Mr",Value="Mr"},
    new SelectListItem{ Selected = Model.Title.Equals("Mrs"),   Text="Mrs",Value="Mrs"},
    new SelectListItem{ Selected = Model.Title.Equals("Miss"), Text="Miss",Value="Miss"},
    new SelectListItem{Selected = Model.Title.Equals("Ms"), Text="Ms",Value="Ms"}       
    });
}
@Html.DropDownListFor(m=>m.Title, list)
</td>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-3

11
推荐指数
2
解决办法
2万
查看次数

在.NET中将非ascii(unicode)数字字符串解析为整数

我有一个包含非ascii格式的数字的字符串,例如unicode BENGALI DIGIT ONE(U + 09E7): "?"

如何在.NET中将其解析为整数?

注意:我尝试使用int.Parse()"bn-BD"作为IFormatProvider指定bengali文化格式.不行.

.net unicode

11
推荐指数
1
解决办法
1450
查看次数

OO编码 - 是否使用对象管理器?

请给我一点意见的建筑风格:

我的ORM给了我一个User对象,它对应于我系统的用户.我想开发一堆处理用户的方法 - GetByUsername(),Authenticate(),VerifyLoginPassword()等.但是我觉得其中一些方法并不真正属于User类 - 例如GetByUsername()感觉至少像用户的静态方法一样,但是拥有另一个类不是更"干净",比如"UserManager",它为我们提供了这些用户管理类型的任务吗?用户实例包含Authenticate()方法似乎有点奇怪,例如,如果它是进行身份验证的安全系统?

我担心的是我最终跟随这个模型到User类只不过是一个结构,而我的User Manager和Security Manager类实际上完成了所有方法的工作.让所有这些管理器类操作轻量级对象并不是非常"OO".

任何关于这一哲学问题的现有技术的想法或链接都将不胜感激!

oop domain-driven-design

9
推荐指数
1
解决办法
2073
查看次数

实体框架4的SqlMetal替代方案

我以前更喜欢在生成Linq2SQL模型时使用SqlMetal到Visual Studio中的OR Designer.

所以,我的问题是:是否有一个等效的SqlMetal用于生成EF4模型,即一步重建我的EF类的命令行工具?

entity-framework linq-to-sql

7
推荐指数
1
解决办法
2557
查看次数

在jquery中添加多个CKEditor实例

我正在尝试各种WYSIWYG javascript文本区域.如果我尝试<textarea>使用jquery在屏幕上的每个屏幕上放置一个CKEditor ,编辑器都显示正常,但它们不会保存.我试过了:

$(function() {
$('.editors').ckeditor();
});
Run Code Online (Sandbox Code Playgroud)

$(function() {
$('.editors').each(function(index, element){
    $(element).ckeditor();
});
});
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,每个文本区域都有一个CKEditor,但它不会保存.如果我手动添加所有编辑器

$(function() {
CKEDITOR.replace('contactText');
CKEDITOR.replace('edit_footer_text');
CKEDITOR.replace('termsText');
});
Run Code Online (Sandbox Code Playgroud)

要么

$(function() {
$('#contactText').ckeditor();
$('#edit_footer_text').ckeditor();
$('#termsText').ckeditor();
});
Run Code Online (Sandbox Code Playgroud)

这三个领域都有编辑,他们保存.

我试图在这个项目的标准模板中加入一些代码,这样如果我们想要文本区域的编辑器,他们只需要为它们添加类"编辑器",这就是为什么我在寻找jQuery解决方案.这确实适用于tinymce:

$(function() {
     $('.editors').tinymce({
           script_url : '/common/tiny_mce/tiny_mce.js',
               // General options
               mode : "textareas",
              theme : "advanced",
         })
});
Run Code Online (Sandbox Code Playgroud)

jquery ckeditor

6
推荐指数
1
解决办法
1万
查看次数

使用 MudBlazor MudDataGrid ServerData 从 API 加载分页数据

在我看来,当涉及到从 API 等动态源加载分页数据时,MudDataGrid 的文档有点缺乏。

  • 我该如何使用该ServerData属性?
  • 如何处理行点击?
  • 如何在 API 调用中发送附加过滤器/搜索条件?
  • 如何预设对象的Page和?PageSizeGridState

pagedlist blazor mudblazor

6
推荐指数
1
解决办法
2742
查看次数

iTextSharp垂直间距

我正在使用iTextSharp生成一些PDF文件.我有两个有内容的表,我想在两个表之间放一些空格,比如相当于1行文本(使用与空格周围的表相同的字体).

下面是我用来添加两个表的代码.我无法弄清楚的是如何在两个表之间放置一个垂直空间.

Table upperTable = new Table(1);
upperTable.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
upperTable.AddCell(new Phrase("some text", font3));
d.Add(upperTable);
Table lowerTable= new Table(1);
lowerTable.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
lowerTable.AddCell(new Phrase("some other text", font3));
d.Add(lowerTable);
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何在两个表之间添加垂直空间吗?

谢谢!

c# itextsharp

5
推荐指数
2
解决办法
1万
查看次数