小编And*_*mer的帖子

在HtmlHelper的扩展方法中从传递的lambda表达式获取属性值的最简单方法是什么?

我正在为HtmlHelper编写一个脏的小扩展方法,以便我可以说HtmlHelper.WysiwygFor(lambda)之类的内容并显示CKEditor.

我现在有这个工作,但它似乎比我想要的更麻烦.我希望有更直接的方式来做到这一点.

这是我到目前为止所拥有的.

public static MvcHtmlString WysiwygFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
    return MvcHtmlString.Create(string.Concat("<textarea class=\"ckeditor\" cols=\"80\" id=\"",
                                        expression.MemberName(), "\" name=\"editor1\" rows=\"10\">", 
                                        GetValue(helper, expression),
                                        "</textarea>"));
}

private static string GetValue<TModel, TProperty>(HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
    MemberExpression body = (MemberExpression)expression.Body;
    string propertyName = body.Member.Name;
    TModel model = helper.ViewData.Model;
    string value = typeof(TModel).GetProperty(propertyName).GetValue(model, null).ToString();
    return value;
}

private static string MemberName<T, V>(this Expression<Func<T, V>> expression)
{
    var memberExpression = expression.Body as MemberExpression;
    if (memberExpression == null)
            throw new InvalidOperationException("Expression must …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc recursion lambda extension-methods html-helper

54
推荐指数
4
解决办法
3万
查看次数

反竞选活动

我最近遇到了一个非常有趣的网站,表达了一个非常有趣的想法 - 反竞选活动.您可以在www.antiifcampaign.com上看到这一点.我必须同意复杂的嵌套IF语句是后方的绝对痛苦.我目前正在进行一个项目,直到最近才有一些疯狂的嵌套IF向右滚动相当多的方式.我们以两种方式解决了问题 - 我们使用Windows Workflow Foundation来解决路由(或工作流程)问题.我们正在利用ILOG Rules for .NET(最近由IBM购买!!)实施所有业务规则.这在很大程度上已经治愈了我们的嵌套IF痛苦...但我发现自己想知道有多少人以AntiIfCampaign的优秀人士建议的方式(通过这里看到一个例子)通过创建大量抽象类来解决他们的痛苦表示最初由嵌套IF覆盖的给定方案.我想知道解决这种复杂性的另一种方法是否也可能是使用诸如StructureMap之类的IoC容器来移入和移出不同的功能.无论哪种方式...

问题: 给定一个场景,我有一个嵌套的复杂IF或SWITCH语句,用于评估给定类型的事物(比如评估一个枚举),以确定我想如何通过枚举类型处理该事物的处理 - 有什么一些如何在不使用IF或SWITCH分层结构的情况下进行相同形式的处理?

public enum WidgetTypes
{
    Type1,
    Type2,
    Type3,
    Type4
}

...

WidgetTypes _myType = WidgetTypes.Type1;

...

switch(_myType)
{
    case WidgetTypes.Type1:
        //do something
        break;

    case WidgetTypes.Type2:
        //do something
        break;

    //etc...
}
Run Code Online (Sandbox Code Playgroud)

design-patterns

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

CSS设计者要避免的常见错误?

CSS设计师最常犯的一些错误是什么?

css

24
推荐指数
11
解决办法
2627
查看次数

在C#中使用接口有什么好处?

几年前我被迫进入一个工作中的软件项目,并被迫快速学习C#.我的编程背景很弱(经典ASP).

多年来我学到了很多东西,但由于我学习C#的强制性,我还有很多基本概念.

具体来说,一个界面.我理解基础知识,但在编写应用程序时,我很难弄清楚它的实际用途.为什么要为他们的应用程序编写接口?

谢谢凯文

c# oop design-patterns interface

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

在简单的域驱动设计中的贫血域模型与域模型

我最近读了一篇关于" 贫血领域模型模式 "的文章引起了我的注意.当我读完这篇文章时,我发现Anemic Domain Model描述适用于我已经开发和构建的许多项目.我从未认为这是一个糟糕的设计决定,因为它感觉非常自然.我认为,在领域模型重量轻且不是非常复杂的情况下,贫血领域模型的名字非常适合.为什么要增加域模型的复杂性,而不必仅仅因此"Anemic Domain Model"的标题不能恰当地描述您的代码?

问题:在您的服务/应用程序层中填充更多代码复杂性的时间点变得不正确,有利于暴露实体对象的复杂性?我在一个实体上拥有一个"Total"属性,它在内部可以计算出Total的值.我不是让实体直接与各种其他小工具通信,以确定其中一个属性的结果.因此,贫血领域模型的概念是一种反模式还是一种良好的关注点分离?标题贫血领域模型总是一件坏事吗?

只是好奇其他人对这种设计(反)模式的看法.

design-patterns anti-patterns

16
推荐指数
2
解决办法
5263
查看次数

.mdf太新了(661)我的数据库支持655版

我正在使用SQL Server 2008 express,我想导入.mdf,我收到此错误:.mdf版本是661,您的数据库支持版本655

哪个版本是661以及如何在sql Server 2008中导入它.

sql-server-2008-express sql-server-express

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

在ASP.NET MVC中,如何在CamelCase上将属性名称显示为标签拆分

我知道我以前见过这个.我不记得它是C4MVC模板演示还是输入构建器的东西!我需要知道如何使用CamelCasing我的视图模型属性的约定,并在标签中将"CamelCasedProperty"呈现为"Camel Cased Property".这应该由创建新视图向导处理,而不是以编程方式处理它.

asp.net-mvc-2

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

说服顽固的DBA将ORM用于大多数CRUD与存储过程,视图和函数

我已经使用NHibernate,LINQ to SQL和Entity Framework很长一段时间了.虽然我看到使用ORM来保持开发工作快速移动,代码简单,以及对象关系阻抗不匹配最小化的好处,但我仍然发现很难说服一个ORM强大的死硬SQL dba.从我的角度来看,ORM可以用于所有数据访问的至少90-95%,而在适当的程序或功能中可以完成那些非常繁琐的事情.我绝不是那个说我们必须在ORM中做所有事情的人!

问题:说服旧学校dba的一些更好的理由是,使用ORM并不是程序员曾经想到的绝对最糟糕的想法!

nhibernate orm entity-framework linq-to-sql

10
推荐指数
2
解决办法
2275
查看次数

ColdFusion程序员常见的编程错误要避免吗?

本着我关于"常见的编程错误......避免"的其他问题的精神

ColdFusion程序员要避免哪些常见的编程错误?

coldfusion

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

Predictive vs Reactive软件设计

我知道,对我来说,我首先开始遵循项目管理的瀑布方法,并且我采用了软件设计的预测方法.在这里我的意思是我们有大量的文档包,UML,数据库模式,数据字典,工作流,活动图等.

从事软件工作已超过10年,我发现从反应式方法进行软件设计更为现实.我经常遵循scrum方法进行项目管理,并且生成的文档很少.我们的工作流程规范很少(尽管它们仍然有用).这是一种更加动态的软件创建方法.当然随着时间的推移经常进行重构,因为随着时间的推移我们发现我们预先计划的新功能将会大大改变.

对我们来说最大的区别在于,第一种方法需要更长时间,似乎在软件构建领域更频繁地失败,并且几乎不那么灵活.第二种方法提供了更大的灵活性,使我们更快地意识到故障(因此我们可以更快地纠正),并在每次迭代结束时提供某种形式的功能.

从经验中了解双方,我仍然发现很多人喜欢使用瀑布式方法来处理敏捷的软件开发方法.我不明白.

问题:为什么有人会使用瀑布而不是某种形式的敏捷与所有支持敏捷的研究?使用瀑布而不是敏捷有什么强有力的论据?

agile scrum waterfall software-design

8
推荐指数
3
解决办法
2112
查看次数