页面呈现采用Razor模板
 
1、母模板说明
_Main.cshtml:基础母模板
_ListLayout.cshtml:列表页面
_EditDialog.cshtml:编辑对话框
_EditLayout.cshtml:编辑页面
_ViewDialog.cshtml:查看对话框
_ViewLayout.cshtml:查看页面
(母版页在Views\Shared目录下,xxxLayout页都是基于_Main.cshtml页)
 
2、列表页和对话框
列表页:
列表页采用_ListLayout.cshtml作为母版页,可以在列表页编写以下Section
@section header:这部分内容将在包含在<head>,用于编写js和css。
@section toolbar:工具栏,

@section searchbar:搜索栏,

@section list:列表部分
如下图所示:
 
编辑页:
编辑页采用_ViewDialog.cshtml作为母版页,可以在列表页编写以下Section

@section header:这部分内容将在<head></head>呈现,用于编写js和css
其它部分为页面的body内容。
如下图所示,红框部分为编辑页的页面(在列表页用iframe加载编辑页)
 
编辑页包含以下js脚本
//点击“保存”按钮会调用到编辑页的函数onDialogClose()
function onDialogClose(msg) {
$.ajaxSubmit();
}
//该函数用ajax提交表单,提交成功后调用onComplete关闭窗口
function onComplete() {
$.dialog.close("ok"); //关闭窗口
}
3、 HtmlHelper

除了ASP.net MVC 提供的HtmlHelper外,框架还提供以下HtmlHelper
(在页面上添加@using aSite.UI.Html)
(1)、分页
  @Html.PageBar()
(2)、字典下拉框和字典标签
  @Html.DictDropDownList()、@Html.DictDropDownListFor()

  @Html.DictText()、@Html.DictTextFor()
(3)、枚举型下拉框和标签
  @Html.EnumDropDownList()、@Html.EnumDropDownListFor()、
  @Html.EnumText()、@Html.EnumTextFor()

(4)、表格
  @Html.GridHeader() //表格标题
(5)、复选框
  @Html.CheckBox()

(6)、树形结构的json数据
  @Html.TreeJsonFor()

(7)、文本显示   
  @Html.Text() 、@Html.TextFor() 、@Html.BooleanText()

(8)、树形列表选择
  @Html.TreeSelectorFor

(9)、选择控件
  @Html.SelectorFor

  
4、js和css
框架在页面用到以下JS
  jquery1.7、bootstrap2.3.2
jq插件:
  jquery-tipsy:用于显示提示信息
  zTree:树形列表
  jquery.cookie:cookie读写
.net MVC自带的js:
  jquery.unobtrusive-ajax.js、jquery.validate.min.js、jquery.validate.unobtrusive.js
 
其中的有对jquery.unobtrusive-ajax.js、jquery.validate.unobtrusive.js、bootstrap-modal.js 3个js文件做小部分的修改,具体可参考代码注释,另外新增css文件bootstrap-ext.css覆盖部分bootstrap自身的样式。
框架提供的js库
  common.js:提供常用的js函数
  dialog.js:对话框相关的js,基于bootstrap-modal.js
 
5、导航和菜单栏
导航和菜单是基于MvcSiteMap实现
Views/Shared/DisplayTemplates目录下提供导航和菜单显示的模板
用法可参考文章:MvcSiteMap用法

SRF之页面的更多相关文章

  1. 简单快速的开发框架-SRF

    1.是什么 SRF(simply and rapid development framework) 一套基于asp.net mvc的开发框架,致力于提供简单.快速的企业应用开发方案,旨在解决企业应用开 ...

  2. multiwii 2.4配置页面中文注释

                                                                                                         ...

  3. SRF之权限控制

    框架目前提供url访问.菜单和页面元素的权限控制和数据权限,权限基于角色来分配,1个用户可以属于多个角色,权限项分模块.页面.操作3级别,其中模块.页面用于url和菜单的控制,操作是对页面元素的控制. ...

  4. SRF之数据验证

    实现表单输入数据的验证,包括客户端验证和服务器端验证 如何使用 数据验证在业务层的实体类字段上增加数据验证的特性,例如 public class User { [Required(ErrorMessa ...

  5. 页面嵌入dom与被嵌入iframe的攻防

    1.情景一:自己的页面被引入(嵌入)至别人的页面iframe中 if(window.self != window.top){ //url是自己页面的url window.top.location.hr ...

  6. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  7. nodejs进阶(4)—读取图片到页面

    我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file. ...

  8. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

    在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将 ...

  9. 百度MIP移动页面加速——不只是CDN

    MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...

随机推荐

  1. js中字符串的截取

    当需要从一组数据中移除到符合条件的某一个数据的时候,在这种情况下如何进行截取呢? 基本思路: ①将其通过特定的符号,将一组字符串进行拼接,或者用","或者用"+" ...

  2. jdk线程常见面试题

    请编写一个多线程程序,实现两个线程,其中一个线程完成对某个对象int成员变量的增加操作,即每次加1,另一个线程完成对该对象成员变量的减操作,即每次减1,同时要保证该变量的值不会小于0,不会大于1,该变 ...

  3. Kendo UI - Observable

    在 Kendo 中,基类 Class 第一个重要的派生类就是 Observable, 顾名思义,就是一个可观察的对象,也就是观察者模式的基础. 对于观察者模式来说,应该有主题和观察者,这里我们讨论的其 ...

  4. MFC学习 进程间通信

    内存共享通信方式 server.cpp #include <stdio.h> #include <Windows.h> int main() { HANDLE hFile; h ...

  5. pytest学习笔记(三)

    接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py ...

  6. 翻译「C++ Rvalue References Explained」C++右值引用详解 Part6:Move语义和编译器优化

    本文为第六部分,目录请参阅概述部分:http://www.cnblogs.com/harrywong/p/cpp-rvalue-references-explained-introduction.ht ...

  7. 求编译器中数的最值(c++)

    #include <limits> //头文件 #include <iostream> using namespace std; int main() { cout <& ...

  8. oracle创建索引后sqlldr导入错误

    SQL*Loader-: Error calling once/load initialization ORA-: Table TABLE_LOG has index defined upon it. ...

  9. Android控件大全(一)——DialogFragment创建对话框

    DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...

  10. 图解CISCO 3550忘记密码解决方法

    图解CISCO3550忘记密码解决方法 Cisco网络设备密码忘记怎么初始出厂默认值?这时网友常常会提出的问题,怎么解决,有人说啦,去百度去谷歌一下不就行啦,然而这对初学者任是个挑战,虽然步骤只有简单 ...