随笔分类 -  MVC

摘要:在mvc中,Url地址是利用routing特性来支持,但是这个Routing有个问题,多个不同的地址和指向同一个action方法, 例如: 解决方法:通过使用注册全局的filter 先定义一个filter 然后注册这个filter: 总结:首先获取当前的RequestContext和RouteDat 阅读全文
posted @ 2016-07-05 17:23 那就让我这样吧 阅读(447) 评论(0) 推荐(0)
摘要:有个问题: 抽象出来的接口里的一些属性添加了属性验证,比如: 一切都看似很正常 但是后来发现 在接口里添加的一些验证属性都不起作用 原因是: CLR对基类和接口的处理是不一样的,基类是继承的,所有基类里出现的方法 属性都在子类实现具有同样的效果,但是接口不一样,接口是用来实现的,要求子类必须实现,但 阅读全文
posted @ 2016-07-05 14:46 那就让我这样吧 阅读(808) 评论(0) 推荐(0)
摘要:可以使用HandleErrorAttribute 有两种方式可以使用它,在类或者方法的头上加 [HandleError] 这种直接在类或者方法上加[HandlerError]手动添加 另外一种方式是使用Global Filters功能来注册,默认的mvc3.0以上都在Global.asax文件已经默 阅读全文
posted @ 2016-07-05 14:14 那就让我这样吧 阅读(470) 评论(0) 推荐(0)
摘要:jquery在浏览器ajax调用的时候,对缓存提供了很好的支持,POST方式不能被缓存,使用POST的原因,明确了数据不能被缓存,或者避免JSON攻击(JSON返回数据的时候可以被入侵) jquery全局对象里的ajax提供了一些方式来支持缓存和ConditionalGETs功能 ifModifie 阅读全文
posted @ 2016-07-05 11:18 那就让我这样吧 阅读(1028) 评论(0) 推荐(0)
摘要:由于mvc内部跳转机制的问题,它只在当前的action所渲染的view上进行跳转,如果希望在当前页面跳,需要将mvc方法改为js方法: 修改成Js方法跳转: 阅读全文
posted @ 2016-06-29 15:02 那就让我这样吧 阅读(279) 评论(0) 推荐(1)
摘要:mvc3之后:如果路由带上扩展名,比如这样: 在浏览器输入: http://localhost:15526/Home/Index.html 可能会报错:404错误, 解决方法:把这玩意设置成: 阅读全文
posted @ 2016-06-29 14:54 那就让我这样吧 阅读(253) 评论(0) 推荐(0)
摘要:主要用到: HttpStatusCodeResult 和HttpStatusCode 的http返回状态 比如: /// <summary> /// 使用异步模式 /// </summary> /// <param name="id"></param> /// <returns></returns> 阅读全文
posted @ 2016-06-29 14:41 那就让我这样吧 阅读(323) 评论(0) 推荐(0)
摘要:我的MvcSiteMap地图主要由实体文件,XML配置文件,C#调用文件组成,当然为了前台调用方法,可以为HtmlHelper添加一个扩展方法 第一步 定义站点地图实体 public class MvcSiteMap { [XmlAttribute] public int ID { get; set 阅读全文
posted @ 2016-06-29 14:23 那就让我这样吧 阅读(337) 评论(0) 推荐(0)
摘要:mvc对DropDownListFor的重载很多,但对checkbox和radiobutton没有对集合的重载 所以该讲主要针对集合的扩展: #region 复选框扩展 /// <summary> /// 复选框扩展 /// </summary> /// <typeparam name="TMode 阅读全文
posted @ 2016-06-29 14:02 那就让我这样吧 阅读(467) 评论(0) 推荐(0)
摘要:因为下拉框不支持验证,所以写一个attribute特性,让它继承ValidationAttributemvc的特性验证,很直接,无论是数据安全特性上还是页面表现上都不错,它的运行机制: 前台表单验证规则有个名称,然后前台js有对这个规则编写的代码,用来控制前台html标记的显示,而后台主要是生成验证 阅读全文
posted @ 2016-06-29 13:53 那就让我这样吧 阅读(818) 评论(0) 推荐(0)
摘要:方法就是使用:ActionFilterAttribute它的几个方法:OnActionExecuted,OnActionExecuting,OnResultExecuted和OnResultExecuting,它们记录一个action从加载到页面最终显示在浏览器的全过程,这个东西一般用在页面权限验证 阅读全文
posted @ 2016-06-29 11:36 那就让我这样吧 阅读(398) 评论(0) 推荐(0)
摘要:根据上一讲的可以加载一棵大树,这讲讲下如果操作这颗大树 <link href="../../Scripts/JQuery-zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" /> <script src="../../Scripts/JQuer 阅读全文
posted @ 2016-06-29 11:05 那就让我这样吧 阅读(717) 评论(0) 推荐(0)
摘要:ZTree是一个jquery的树插件可以异步加载 第一步定义一个标准的接口(指的是与ztree默认的数据元素保持一致) 第二步:会前台页面提供一个GET请求的方法,用来根据父ID,得到它的一级子节点列表 当然需要一个JsonHelper工具类: 第三步:前台展示可能 是这样 阅读全文
posted @ 2016-06-29 10:42 那就让我这样吧 阅读(689) 评论(0) 推荐(0)
摘要:在MVC网站的global.asax中的Application_Start方法里,有这样一段代码 第一步:开发异常持久化类: 第二步:将异常放进过滤器里 阅读全文
posted @ 2016-06-29 10:12 那就让我这样吧 阅读(2178) 评论(0) 推荐(0)
摘要:二者作用:RenderAction:渲染分部视图到页面上,要求提供Action和控制器名称RenderPartial:渲染分部视图到页面上,要求提供分部视图的名称,即路径,如果是在当前控制下或者shared下的页面,可以直接写名称即可 区别:RenderAction:通过控制器在aciton,即Ht 阅读全文
posted @ 2016-06-28 18:06 那就让我这样吧 阅读(263) 评论(0) 推荐(0)
摘要:Html.BeginForm与Ajax.BeginForm都是mvc的表单元素,前者是普通的表单提交,而后者是支持异步的表单提交,直接用mvc自带的Ajax.BeginForm就可以很容易完成一个异步的表单提交动作 第一种普通提交几种方式 第二种ajax提交: 需要注意的是: 表单的按钮在异步表单中 阅读全文
posted @ 2016-06-28 17:30 那就让我这样吧 阅读(297) 评论(0) 推荐(0)
摘要:在mvc的每个Action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为View或者是一个PartialView, 在以Aspx为页面引擎时,PartialView被称为分部视图,扩展名为ASCX,与webform的用户控件一样,是页面的一部分,而使用Razor 阅读全文
posted @ 2016-06-28 17:08 那就让我这样吧 阅读(1672) 评论(0) 推荐(0)
摘要:以前在页面引入一个namespace,可以这样: 如果空间是所有页面都需要的,可以写进配置文件 但mvc选择的模板引擎是Razor,那以上的web.config里的设置就没有作用了,因为Razor是第三方组件为.net引入,它是在views目录下的web.config中进行配置的,所以在根目录下we 阅读全文
posted @ 2016-06-28 16:44 那就让我这样吧 阅读(1567) 评论(0) 推荐(0)
摘要:MVC小系列(八)【改变Areas的FindView顺序】 一般项目比较大的话,会根据模块建立Areas,这样结构清晰,也有利于路由的部署, 1 Areas下有自己的_LayOut模板,而如果希望所有Areas都用公有的(~/Views/Shared)下的模板,可以改变Areas的FindView规 阅读全文
posted @ 2016-06-28 16:32 那就让我这样吧 阅读(398) 评论(0) 推荐(0)
摘要:MVC小系列(七)【分部视图中的POST】 在PartialView中进行表单提交的作用:1 这个表单不止一个地方用到,2 可能涉及到异步的提交问题 这两种情况都可能需要把表单建立在分部视图上, 使用MVC3.0的输出流方法: @Html.Partial() @Html.Action() 当然,也可 阅读全文
posted @ 2016-06-28 15:35 那就让我这样吧 阅读(269) 评论(0) 推荐(0)