MVC视图模型inheritance和创建动作

我正在尝试找出在MVC应用程序中处理模型类型层次结构的最佳架构。 鉴于以下假设模型 – public abstract class Person { public string Name { get; set; } } public class Teacher : Person { public string Department { get; set; } } public class Student : Person { public int Year { get; set; } } 我可以为每种类型创建一个控制器。 对于使用显示模板的视图,人员将只有索引和细节操作,教师和学生将只有创建/编辑操作。 这会起作用但看起来很浪费,并且不会真正扩展,因为如果在层次结构中添加了另一种类型,则需要新的控制器和视图。 有没有办法在Person控制器中进行更通用的创建/编辑操作? 我已经搜索了一段时间的答案,但似乎无法找到我正在寻找的确切,所以任何帮助或指针将不胜感激:)

所有者绘制的进度条(ListView / DataGridView)中的动画“发光”

我注意到.NET 2.0中的沼泽标准ProgressBar(Winforms)确实显示为Vista中花哨的动画发光条; 但是,使用ProgressBarRenderer(通常在尝试在所有者绘制的列表视图,网格视图或其他此类控件中绘制进度条时)只提供没有漂亮动画的视觉样式。 我想,这可能会让人觉得很神奇 – 我觉得Vista中的原生控件必须有某种嵌入式计时器或线程,在绘制静态图像时显然不存在。 我确实看到如果你连续几次重绘一个ProgressBar控件(使用DrawToBitmap)你可以实际看到动画发光的不同阶段,所以我尝试使用一个计时器来自动重绘,但有些东西不是很正确外观,它也比实际的ProgressBar节省了更多的CPU时间。 这似乎给我留下了两个不合标准的选项:a)使用ProgressBarRenderer并最终获得Vista“外观”但没有动画; 或者b)使用计时器不断地将几个ProgressBars重绘为位图,并浪费CPU周期以使其看起来更好但仍然不完美。 我想知道是否有人有经验在所有者绘制的控件中嵌入进度条并且可能知道比上面两个选项更好的方法 – 可以准确地再现发光/闪烁而不依赖于定时器和/或锤击CPU。

如何覆盖richtextbox中的复制和粘贴

如何覆盖Richtextbox C#应用程序中的复制/粘贴function。 包括ctrl-c / ctrl-v和右键单击复制/粘贴。 这是WPF richtextBox。

如何在WPF中调用Windows主题?

嗨伙计我试图在WPF 3.5中为我的元素调用windows的当前主题。 当用户更改窗口主题时,我的应用程序也应根据主题进行更改。 我正在使用款式。 请帮我。

我应该总是在nhibernate中使用事务(即使是简单的读写操作)吗?

我知道对于多部分写入,我应该在nhibernate中使用事务。 然而,对于简单的读写操作(1部分)…我已经读过,总是使用事务是一种好习惯。 这需要吗? 我应该做一下简单的阅读吗? 或者我可以将交易部分全部丢弃? public PrinterJob RetrievePrinterJobById(Guid id) { using (ISession session = sessionFactory.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { var printerJob2 = (PrinterJob) session.Get(typeof (PrinterJob), id); transaction.Commit(); return printerJob2; } } } 要么 public PrinterJob RetrievePrinterJobById(Guid id) { using (ISession session = sessionFactory.OpenSession()) { return (PrinterJob) session.Get(typeof (PrinterJob), id); } } 简单的写作怎么样? […]

使用OpenXML SDK w / ASP.NET流式传输内存Word文档导致“损坏”文档

我无法将我创建的word文档流式传输到浏览器。 我不断从Microsoft Word收到一条消息,说明该文档已损坏。 当我通过控制台应用程序运行代码并将ASP.NET从图片中删除时,文档生成正确,没有任何问题。 我相信一切都围绕着写下文件。 这是我的代码: using (MemoryStream mem = new MemoryStream()) { // Create Document using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true)) { // Add a main document part. MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); Body body = mainPart.Document.Body; body.Append(new Paragraph(new Run(new Text(“Hello World!”)))); mainPart.Document.Save(); // Stream it down to the browser // […]

C# – 检测面部和裁剪图像

我正在用C#写一个HttpHandler ,它提供了resize的图像,等等等等……没有麻烦,我们有数以百万计的处理程序用作参考。 问题是我的用户照片采用“传统”尺寸,如4:3和16:9。 但是这个处理程序需要以照片ID大小(4cm×3cm)提供照片,显然需要在用户脸部周围进行裁剪 。 面部位置变化很大(并不总是在图片中心)。 那么,我可以使用什么样的算法来检测面部中心然后围绕这一点裁剪图像?

CancellationTokenSource vs. volatile boolean

在一个易失性布尔字段上使用CancellationTokenSource来表示Task完成是否有任何好处?

关于foreach和代表的问题

假设以下代码: foreach(Item i on ItemCollection) { Something s = new Something(); s.EventX += delegate { ProcessItem(i); }; SomethingCollection.Add(s); } 当然,这是错误的,因为所有代表都指向同一个项目。 替代方案是: foreach(Item i on ItemCollection) { Item tmpItem = i; Something s = new Something(); s.EventX += delegate { ProcessItem(tmpItem); }; SomethingCollection.Add(s); } 在这种情况下,所有代表都指向他们自己的Item。 这种方法怎么样? 还有其他更好的解决方案吗?

.NET“十进制”算术是否独立于平台/架构?

我最近询问了System.Double ,并被告知计算可能因平台/架构而异。 不幸的是,我找不到任何信息告诉我是否同样适用于System.Decimal 。 我可以保证在独立于平台/架构的情况下获得与任何特定decimal计算完全相同的结果吗?