Tag: C#的

如何在ASP.NET MVC中进行分页?

在ASP.NET MVC中做分页的最好和最简单的方法是什么? 即什么是分解成几个可浏览页面的列表最简单的方法。 作为一个例子可以说,我从这样的数据库/网关/资源库获取元素的列表: public ActionResult ListMyItems() { List<Item> list = ItemDB.GetListOfItems(); ViewData["ItemList"] = list; return View(); } 为了简单起见,我想只为我的行为指定一个页码作为参数。 喜欢这个: public ActionResult ListMyItems(int page) { //… }

ASP.NET自定义404返回200确定,而不是找不到404

试图设置我的网站谷歌网站pipe理员工具后,我发现我的自定义ASP.NET 404页面没有返回404状态代码。 它显示正确的自定义页面,并告诉浏览器,一切正常。 这是考虑软404或虚假404。谷歌不喜欢这个。 所以我在这个问题上发现了很多文章,但是我想要的解决scheme似乎没有工作。 我想要的解决scheme是将以下两行添加到自定义404页面的Page_Load方法后面的代码中。 Response.Status = "404 Not Found"; Response.StatusCode = 404; 这不起作用。 页面仍然返回200 OK。 然而,我发现,如果我将以下代码硬编码到devise代码中,它将正常工作。 <asp:Content ID="ContentMain" ContentPlaceHolderID="ContentPlaceHolderMaster" runat="server"> <% Response.Status = "404 Not Found"; Response.StatusCode = 404; %> … Much more code … </asp:content> 该页面正在使用母版页。 我在我的web.configconfiguration自定义错误页面。 我真的宁愿使用后面的代码选项,但我似乎无法使它的工作没有在devise/布局中的黑客内联代码。

MemoryCache在configuration中不遵守内存限制

我在应用程序中使用.NET 4.0 MemoryCache类,试图限制最大caching大小,但是在我的testing中,并没有显示caching实际上服从的是限制。 我正在使用根据MSDN ,应该限制caching大小的设置: CacheMemoryLimitMegabytes :对象实例可以增长到的最大内存大小(以兆字节为单位)。 PhysicalMemoryLimitPercentage : “高速caching可使用的物理内存百分比,表示为1到100之间的整数值。默认值为零,表示MemoryCache实例根据安装在内存中的内存量pipe理其自己的内存1电脑。” 1.这是不完全正确的 – 低于4的任何值都被忽略,并被replace为4。 我知道这些值是近似的而不是硬限制,因为清除caching的线程每隔x秒触发一次,并且也取决于轮询间隔和其他未公开的variables。 但是,即使考虑到这些差异,在将CacheMemoryLimitMegabytes和PhysicalMemoryLimitPercentage设置在一起或在testing应用程序中单独设置时,第一个项目将从caching中逐出时,会看到极其不一致的caching大小。 为了确保我跑了10次testing,并计算出平均数字。 这些是在具有3GB RAM的32位Windows 7 PC上testing以下示例代码的结果。 caching的大小是在每次testing首次调用CacheItemRemoved()之后进行的。 (我知道caching的实际大小会比这大) MemLimitMB MemLimitPct AVG Cache MB on first expiry 1 NA 84 2 NA 84 3 NA 84 6 NA 84 NA 1 84 NA 4 84 NA 10 84 10 20 81 10 […]

Winforms TableLayoutPanel以编程方式添加行

我一直在争取一段时间,并发现许多其他人也与TableLayoutPanel(.net 2.0 Winforms)的斗争。 问题 我试图采取一个'空白'tablelayoutpanel,其中有10列定义,然后在运行时编程添加控制行(即每个单元格一个控件)。 有人可能会认为它应该是如此简单 myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */); 但是(对我来说)不会添加行。 所以也许可以添加一行样式 myTableLayoutPanel.RowStyles.Clear(); myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F)); 但是这也行不通。 我挖了myTableLayoutPanel.RowCount ,发现myTableLayoutPanel.RowCount用法从devise时间改变到运行时间,因此做myTableLayoutPanel.RowCount++; 实际上并没有添加其他行,甚至在为它添加RowStyle条目之前/之后! 我遇到的另一个相关的问题是控件将被添加到显示,但他们都只是简单地在TableLayoutPanel的0,0点呈现,另外他们甚至没有被限制在它们应该是Cell的边界内显示在内(即与Dock = DockStyle.Fill他们仍然显得太大/小)。 有人有一个在运行时添加行和控件的工作示例?

如何从ISO 8601格式创build.NET DateTime

我已经find了如何将date时间转换为ISO 8601格式,但没有关于如何在C#中做相反的事情。 我有2010-08-20T15:00:00Z ,我想把它变成一个DateTime对象。 我可以自己把琴弦的各个部分分开,但对于那些已经是国际标准的东西来说,这似乎有很多工作要做。

C中最常见的命名约定是什么?

C中常用的命名约定是什么? 我知道至less有两个: GNU / linux / K&R与lower_case_functions ? 名称 ? 与UpperCaseFoo函数 我只在这里谈论C。 我们的大部分项目都是使用C语言的小型embedded式系统。 下面是我计划在下一个项目中使用的一个: C命名约定 Struct TitleCase Struct Members lower_case or lowerCase Enum ETitleCase Enum Members ALL_CAPS or lowerCase Public functions pfx_TitleCase (pfx = two or three letter module prefix) Private functions TitleCase Trivial variables i,x,n,f etc… Local variables lower_case or lowerCase Global variables g_lowerCase […]

如何在C#中创buildWord文档?

我有一个项目,我想生成MS Word格式的报告导出。 报告将包括图像/图表,表格和文字。 做这个的最好方式是什么? 第三方工具? 你有什么经验?

C#属性实际上是方法吗?

直到现在,我还是觉得C#中Properties & Methods是两个不同的东西。 但后来我做了如下的东西。 这对我来说是一个“开眼界”。 我期待一个属性stringProp和一个方法stringProp ,而是我得到了这个。 为何发生这种事? 请有人解释一下。

Log4Net,如何添加自定义字段到我的日志logging

我使用log4net.Appender.AdoNetAppender appender。 我的log4net表是以下字段[Date],[Thread],[Level],[Logger],[Message],[Exception] 我需要添加另一个字段到log4net表(例如SalesId),但是如何在我的xml和代码中指定loggingError或Info消息时logging“SalesId”? 例如log.Info("SomeMessage", SalesId) 这是log4net xml <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value ="System.Data.SqlClient.SqlConnection" /> <connectionString value="Data Source=…" /> <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="255" […]

如何将std :: string转换为NSString?

嗨,我试图将一个标准的std::string转换成一个NSString但我没有太多的运气。 我可以使用下面的代码从NSString成功转换为std::string NSString *realm = @"Hollywood"; std::string REALM = [realm cStringUsingEncoding:[NSString defaultCStringEncoding]]; 但是,当我尝试以下时,我得到一个编译时错误 NSString *errorMessage = [NSString stringWithCString:REALM encoding:[NSString defaultCStringEncoding]]; 我得到的错误是 Cannot convert 'std::string' to 'const char*' in argument passing 我在这里错过了什么? 提前致谢。