MVC视图

  • 平台
  • Evoq内容
  • Evoq参与

的_ViewStart.cshtml

在ASP。净MVC3后来版本中,您可以定义一个剃须刀命名视图_ViewStart.cshtml(或_ViewStart.vbhtmlVB)的根源的观点文件夹中。这个可选文件定义常见视图时执行的代码每个视图开始呈现。例如:代码中_ViewStart.cshtml可以以编程方式设置每个视图的吗布局财产视图/共享/ _Layout.cshtml默认情况下。

例如:在视图/ _ViewStart.cshtml:

@{布局= " ~ / DesktopModules / MVC / CompanyName_MyMvcModule /视图/共享/ _Layout.cshtml”;}

例如:在视图/共享/ _Layout.cshtml:

< div id = " mvcContainer -@Dnn.ActiveModule。ModuleID " > @RenderBody () < / div >

上述文件,生成的MVC项目模板,确保返回的所有视图控制器动作总有一个包装器< div > id,其中包括当前模块的id。如果您选择排除_ViewStart.cshtml在您的项目中,你的个人行动的观点只会呈现不常见的包装。

视图命名约定

根据MVC模式惯例、视图驻留在文件夹内的观点文件夹中。每个控制器必须有一个视图文件夹命名它。例如,template-generated项目创建了两个MVC控制器:ItemControllerSettingsController与各自的控制器:视图/项目视图/设置

注意:通常视图文件夹相应的控制器的名称,但没有“控制器”这个词。

同样,你的剃须刀视图文件必须命名根据相关控制器的动作方法的名称。例子:我们有两个c#剃须刀的观点视图/项目文件夹叫Index.cshtmlEdit.cshtml对应ItemController.Index ()ItemController.Edit ()行动的方法。

绑定数据在你的视图

除了HTML和javascript,以下服务器对象可以用来填充视图:

  • 模型返回的模型对象的行动是绑定到视图中的泛型声明@inherits声明视图的顶部。
    @inherits DotNetNuke.Web.Mvc.Framework.DnnWebViewPage < Dnn.Modules.CompanyName.MyMvcModule.Models.Item <
    上面的线将使类用于访问Razor视图中通过模型财产。然后你可以注入模型属性的html:
    < 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 = "项目-@Dnn.ModuleContext.ModuleId " >

视图导航

导航到另一个视图或控制器动作,你可以使用的操作方法帮助创建一个URL操作方法,您可以将其放置在一个锚标记或按钮。在template-generated项目指数看来,超链接在每一项可能导致用户的单项编辑视图。

< a href = "。操作(“编辑”、“项”、新{ctl =“编辑”,itemId = item.ItemId}) " > @Dnn.LocalizeString (EditItem) < / >

客户端脚本

机制用于注册脚本、样式表,或者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) < /标签>