试图在发布候选版中创建MVC用户控件,我无法制作带有codebehind文件的控件。MVC视图页面也是如此。
在测试版中创建视图将生成代码后向......我错过了什么吗?
试图在发布候选版中创建MVC用户控件,我无法制作带有codebehind文件的控件。MVC视图页面也是如此。
在测试版中创建视图将生成代码后向......我错过了什么吗?
代码后台有点违背了MVC框架的初衷。功能应该与视图分离,MVC团队认为代码后台页面违背了这种理念,因此将它们移除了。
您可以创建自定义的帮助方法来创建您的控件。此外,我不确定MVC是否具有视图组件(Monorail / Castle),但这也是一个选项。
来自ScottGu博客文章:
*Views without Code-Behind Files Based on feedback we’ve changed view-templates to not have a code-behind file by default. This change helps reinforce the purpose of views in a MVC application (which are intended to be purely about rendering and to not contain any non-rendering related code), and for most people eliminates unused files in the project. The RC build now adds C# and VB syntax support for inheriting view templates from base classes that use generics. For example, below we are using this with the Edit.aspx view template – whose “inherits” attribute derives from the ViewPage type:
不使用代码后台文件的一个很好的好处是,当你将它们添加到项目中的视图模板文件中时,你现在会立即获得智能感知。在以前的版本中,你必须在创建视图之后立即执行构建/编译才能在其中获取代码智能感知。RC使得添加和立即编辑视图的工作流程不需要编译,并且更加无缝。
重要提示:如果你在升级一个早期版本的 ASP.NET MVC 项目,请确保遵循版本说明中的步骤 - 在 Views 目录下的 web.config 文件需要更新一些设置,以便使用基于泛型的上述语法。
我在这里回答了这个问题:
如何为部分视图添加一个Code-behind页面
Seems this wasn t particularly tricky, and is quite do-able This answer worked for a Partial ViewUserControl but the same should apply
好的。
首先:添加一个按照.cs命名约定的类文件(即view.ascx.cs)。
第二步:在类中添加“using System.Web.Mvc;”。
第三步:将类更改为继承“ViewUserControl
第四步:将以下内容添加到视图的标题中:
CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"
第五步:将文件从解决方案中复制出来,再将其拖回以重新关联它们。
注意:要使它与普通MVC视图配合工作,您只需要将类继承自“ViewPage”。
ASP.Net-mvc的整个想法是摆脱代码后台文件...这就是为什么ASP Web控件不重要,因为大多数控件都无法正常工作。但是,随着摆脱代码后台的变化,也带来了不同的编程风格..这个想法是代码后台文件是邪恶的。
ASP.NET MVC中的CodeBehind文件是邪恶的。
整个想法是确保人们记得他们正在使用asp.Net-mvc而不是asp.et Web页面。看看这个链接,它会更好地解释:
将此翻译成中文: http://blog.lozanotek.com/archive/2008/10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx 将此翻译成中文:http://blog.lozanotek.com/archive/2008/10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx
我认为这个教程是你所需要的..但我不太确定你想要什么..