3

试图在候选版本中创建一个 MVC 用户控件,但我看不到使用代码隐藏文件创建一个。MVC 视图页面也是如此。

在 Beta 中创建视图会产生代码隐藏……我错过了什么吗?

4

5 回答 5

4

背后的代码有点违背 MVC 框架的目的。功能应该与视图分开,MVC 团队认为页面背后的代码违背了这种意识形态,因此将其删除。

您可以创建自定义帮助方法来创建您的控件。另外我不确定 MVC 是否有视图组件(单轨/城堡),但这也可能是一个选项。

于 2009-01-28T05:32:47.483 回答
3

来自ScottGu 的博客文章

*没有代码隐藏文件的视图根据反馈,我们已将视图模板更改为默认情况下没有代码隐藏文件。此更改有助于加强 MVC 应用程序中视图的用途(旨在纯粹用于渲染并且不包含任何非渲染相关代码),并且对于大多数人来说消除了项目中未使用的文件。RC 版本现在添加了 C# 和 VB 语法支持,用于从使用泛型的基类继承视图模板。例如,下面我们将其与 Edit.aspx 视图模板一起使用——其“inherits”属性派生自 ViewPage 类型:

不使用代码隐藏文件的一个好处是,当您将视图模板文件添加到项目中时,您现在可以立即在视图模板文件中获得智能感知。对于以前的构建,您必须在创建视图后立即进行构建/编译,以便在其中获取代码智能感知。RC 使添加和立即编辑视图的工作流程免编译且更加无缝。

重要提示:如果您要升级使用早期版本创建的 ASP.NET MVC 项目,请确保遵循发行说明中的​​步骤 - \Views 目录下的 web.config 文件需要使用一些设置进行更新,以便上述基于泛型的语法可以工作。*

于 2009-01-28T05:45:13.840 回答
3

我在这里回答了这个问题:

如何将代码隐藏页面添加到部分视图

似乎这并不是特别棘手,而且非常可行这个答案适用于部分“ViewUserControl”,但同样适用

行。

第一:添加一个带有.cs约定的Class文件(即view.ascx.cs)

第二:添加“使用System.Web.Mvc;” 到班级

第三:将类更改为从“ViewUserControl<>”继承

第四:将以下内容添加到视图的标题中:

CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"

第五:将文件复制出解决方案并拖回以将两者重新关联在一起

注意:要使用普通 MVC 视图,您只需要从“ViewPage”继承类

于 2009-03-25T07:08:02.387 回答
1

ASP.Net-mvc 的整个想法是摆脱代码隐藏文件......这就是为什么 asp web 控件并不重要,大多数都不起作用。但是随着摆脱代码背后的变化带来了不同的编程风格..这个想法是代码隐藏文件是邪恶的:

http://stevesmithblog.com/blog/codebehind-files-in-asp-net-mvc-are-evil/

整个想法是确保人们记住他们使用的是 asp.Net-mvc 而不是 asp.et 网页。看看这个链接,它解释得更好一点:

http://blog.lozanotek.com/archive/2008/10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx

于 2009-01-28T05:42:57.650 回答
0

我认为本教程就是您要问的..但不确定您想要什么..

于 2009-01-28T05:25:29.057 回答