MVC视图
的_ViewStart.cshtml
在ASP。净MVC3后来版本中,您可以定义一个剃须刀命名视图_ViewStart.cshtml(或_ViewStart.vbhtmlVB)的根源的观点文件夹中。这个可选文件定义常见视图时执行的代码每个视图开始呈现。例如:代码中_ViewStart.cshtml可以以编程方式设置每个视图的吗布局财产视图/共享/ _Layout.cshtml默认情况下。
例如:在视图/ _ViewStart.cshtml:
@{布局= " ~ / DesktopModules / MVC / CompanyName_MyMvcModule /视图/共享/ _Layout.cshtml”;}
例如:在视图/共享/ _Layout.cshtml:
< div id = "(电子邮件保护)" > @RenderBody () < / div >
上述文件,生成的MVC项目模板,确保返回的所有视图控制器动作总有一个包装器< div > id,其中包括当前模块的id。如果您选择排除_ViewStart.cshtml在您的项目中,你的个人行动的观点只会呈现不常见的包装。
视图命名约定
根据MVC模式惯例、视图驻留在文件夹内的观点文件夹中。每个控制器必须有一个视图文件夹命名它。例如,template-generated项目创建了两个MVC控制器:ItemController和SettingsController与各自的控制器:视图/项目和视图/设置。
同样,你的剃须刀视图文件必须命名根据相关控制器的动作方法的名称。例子:我们有两个c#剃须刀的观点视图/项目文件夹叫Index.cshtml和Edit.cshtml对应ItemController.Index ()和ItemController.Edit ()行动的方法。
绑定数据在你的视图
除了HTML和javascript,以下服务器对象可以用来填充视图:
- 模型返回的模型对象的行动是绑定到视图中的泛型声明@inherits声明视图的顶部。
上面的线将使项类用于访问Razor视图中通过模型财产。然后你可以注入模型属性的html:@inherits DotNetNuke.Web.Mvc.Framework.DnnWebViewPage < Dnn.Modules.CompanyName.MyMvcModule.Models.Item <
< span > @Model.ItemName < / span >
- ViewBagViewBag属性可从Razor视图。
< span class = " @ViewBag.TitleClass " > @Model.Name < / span >
- HTML帮助器助手类,生成HTML元素使用模型类。ASP。净MVC包含一个@HTML构造表单元素的助手类,如下拉列表、文本框、标签。
@Html。TextBoxFor (m = > m.Description)
- 款助手款的助手类(@Dnn)提供款核心对象,您可以使用在你的剃须刀。PortalSettings ModuleContext,用户和其他对象提供页面访问底层CMS的结构。
< div id = "(电子邮件保护)" >
客户端脚本
机制用于注册脚本、样式表,或者Javascript库款模块的修改与MVC模块。
注册一个样式表或脚本使用客户端资源管理器,或注册一个Javascript库扩展:@using DotNetNuke.Web.Client。ClientResourceManagement @using DotNetNuke.Framework。JavaScriptLibraries @{/ /注册一个样式表ClientResourceManager.RegisterStyleSheet(款。DnnPage”~ / DesktopModules / MVC / CompanyName_MyMvcModule /资源/ css / module.css”);/ /注册一个定制的javascript ClientResourceManager.RegisterScript(款。DnnPage”~ / DesktopModules / MVC / CompanyName_MyMvcModule /资源/ js /模块。js ", 101);/ /注册一个现有的Javascript库扩展JavaScript.RequestRegistration(“击倒”);}
本地化
基本方法之一@DnnMVC助手是LocalizeString ()。资源文件的视图控制器级别的组织App_LocalResources在模块项目的根文件夹。按照惯例,ItemController应该有一个资源文件命名App_LocalResources / Item.resx。如果有一个关键资源称为“lblName。文本”,你可以把内容视图使用下面的代码:
<标签= " itemName " > @Dnn.LocalizeString (lblName) < /标签>