2011-12-27 49 views
0

我来自ASP.NET Webforms应用程序。我正在使用第三方控件创建一个后裔来设置一些默认值。然后,我将该课程注册为一个标签,并且我准备好不必再次设置选项。“子类”MVC扩展

现在我想去一个基于MVC的应用程序。我很好奇如何做到这一点。有没有办法在那里“扩展”扩展?

编辑:与DevExpress的MVC电网延伸

回答

2

第三方控制完全是另外一个故事这样做,并且供应商必须释放一个ASP.NET MVC版本。

但是,简单来说,在ASP.NET MVC中创建可重用代码的一个选项是create custom HTML helpers。它基本上最终会成为一种方法,您可以调用哪个输出标记,可以相当快速地生成相当强大的标记。

很多HTML Helper上的资源,并且要记住,在Google上找到的“文档”在ASP.NET MVC版本中发生了显着变化,因此请注意确保您不要把自己限制在做事的“老方法”。还有一些商业和免费产品以及带有方便的助手和扩展的开源项目。

+0

供应商发布了MVC版本,我只是在寻找一种集中整合设置的方式,而不是一遍又一遍地重复它们。这只是一些设置所必需的,而其他设置则需要更改。 – Sascha 2011-12-27 17:33:52

+0

@Sascha:我想这取决于供应商版本的结构。如果是助手,那么创建一个调用助手的自定义助手应该可以工作(毕竟,这只是一个调用另一个方法的方法)。如果它是一个用户控件或一些基于类的结构,那么创建一个包装类应该能够做到。最后,它应该归结为类和方法,它们可以根据需要进行包装和/或继承。 – David 2011-12-27 17:36:48

+0

感谢您的提示。我想我发现了一种方式,感谢您的评论,并会接受这个答案。 – Sascha 2011-12-27 17:51:37

1

第三方控件使用Settings类。我创建了一个新的设置类,它在其构造函数中设置了默认值。

然后我写了读像这样的扩展方法:然后

public static GridViewExtension GridView (this HtmlHelper html, Action<CustomGridViewSettings> settings) { 
    var mySettings = new CustomGridViewSettings(); 
    settings(mySettings); 
    return html.DevExpress().GridView((GridViewSettings)mySettings); 
} 

使用的是模拟的样品在线@DevExpress页,我这里省略了样品类。