尝试在Release Candidate中创建一个MVC用户控件,我看不到使用codebehind文件创建一个。 MVC View页面也是如此。
在Beta中创建视图会产生代码隐藏......我错过了什么吗?
答案 0 :(得分:4)
背后的代码挫败了MVC框架的目的。功能应与视图分开,MVC团队认为页面背后的代码违背了这种意识形态,因此将其删除。
您可以创建自定义帮助程序方法来创建控件。另外我不确定MVC是否有视图组件(Monorail / Castle),但也可以选择。
答案 1 :(得分:3)
*没有代码隐藏文件的视图 根据反馈,我们已将视图模板更改为默认情况下没有代码隐藏文件。此更改有助于强化MVC应用程序中的视图的目的(这些应用程序纯粹是关于呈现并且不包含任何非呈现相关代码),并且对于大多数人来说,消除了项目中未使用的文件。 RC构建现在添加了C#和VB语法支持,用于从使用泛型的基类继承视图模板。例如,下面我们将它与Edit.aspx视图模板一起使用 - 其“inherits”属性派生自ViewPage类型:
不使用代码隐藏文件的一个好处是,当您将视图模板文件添加到项目中时,您现在可以立即获得智能感知。使用以前的构建,您必须在创建视图后立即进行构建/编译,以便在其中获取代码智能感知。 RC使得添加和立即编辑视图的工作流程无需编译,更加无缝。
重要说明:如果要升级使用早期版本创建的ASP.NET MVC项目,请确保按照发行说明中的步骤进行操作 - \ Views目录下的web.config文件需要使用某些设置进行更新为了使上述基于泛型的语法起作用。*
答案 2 :(得分:3)
我回答了这个问题here:
如何将代码隐藏页面添加到部分视图
似乎这并不是特别棘手,而且非常可行 这个答案适用于部分'ViewUserControl',但同样适用
确定。
首先:添加一个具有.cs约定的类文件(即view.ascx.cs)
第二:添加“using System.Web.Mvc;”到班级
第三步:将类改为继承自“ViewUserControl<>”
第四步:将以下内容添加到View的标题中:
CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"
第五步:将文件复制出解决方案并重新拖回以将两者重新关联
注意:要使用普通MVC视图,您只需从“ViewPage”继承该类
答案 3 :(得分:1)
ASP.Net-mvc的整个想法是摆脱代码隐藏文件......这就是为什么asp web控件并不重要,大多数都没有用。但随着代码背后的代码的变化随之而来一种不同的编程风格。这个想法是代码隐藏文件是EVIL:
http://stevesmithblog.com/blog/codebehind-files-in-asp-net-mvc-are-evil/
整个想法是确保人们记住他们正在使用asp.Net-mvc而不是asp.et网页。在这个链接上,它解释得更好一点:
答案 4 :(得分:0)
我认为this tutorial就是你要问的......但不确定你想要什么......