随笔分类 - Asp.Net MVC
摘要:一:MVC 中的拦截器众所周知,MVC 存在如下几个主要的拦截器:IActionFilter、IExceptionFilter、IResultFilter、IAuthorizationFilter,但是我们并不用这些拦截器,因为:我们的业务逻辑面向多个平台,即有 Winform,有 Web Mvc ...
阅读全文
摘要:如果使用了延迟加载(Lazy Load),那么,我们就会在序列化的时候碰到 延迟加载 变成了 “立即加载” 的问题。这是为什么呢,因为序列化器会去访问对象的属性,这就会导致属性的 get 方法内的代码被执行起来。比如,类型: class Test { public string Name {get;...
阅读全文
摘要:在 MVC 中,如果尝试如下的编码: public ActionResult TeacherInfo(string courseId) { var x = LearningBll.GetTeacherInfo(courseId); if (x == null) { x = new ...
阅读全文
摘要:EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用。一:使用 datagrid 默认机制后台:public JsonResult GetQuestionUnit() { // easyui da...
阅读全文
摘要:基于权限控制的考虑,在整个后台的开发中,菜单和按钮是可以被自定义的,也就是说:1:每开发一个页面,就需要在系统管理的 菜单管理 中进行设置;2:每个页面中的按钮,也是在 菜单管理 中的设置按钮部分进行设置;具体步骤如下:一:创建页面与菜单的对应管理比如,现在我们创建了一个页面,该页面用户展示页面分类,则需要首先进入 菜单管理:然后,选择你要将新菜单附加在哪个节点上,具体是在上面的列表中选中某节点就可以,然后在菜单管理中点击添加:设置菜单名,已经菜单对应的LOGO,当然,重点是填写如 URL,根据系统本身的特点,我们这里填写的是一个相对路径(即以"/”开头)。菜单本身是可以调节顺序和层
阅读全文
摘要:控制器本身是不带有参的构造函数的,如果我们为控制器仅仅提供有参的构造函数,就会报错。不过,可以利用DependencyResolver的SetResolver方法,让ASP.NET MVC支持有参的构造函数。 1:为系统准备两个类型,如下: 注意,这里要实现的是让控制器支持Unity注入。 UnityControllerFactory代码如下: public class Uni...
阅读全文
摘要:在实际的项目中,会存在大量的自定义路由,URL很容易被错误的路由捕获,现在我们就实现一个这样的诊断工具,该工具通过实现一个自定义的IHttpModule来实现。 首先,我们创建CustomRouteHandler: public class CustomRouteHandler : IRouteHandler { public IHttpHandler GetHtt...
阅读全文
摘要:级联菜单最有名的是省市级联,如果你还没有这样的数据库,请从这里下载Province.rar。 1:MODEL 准备3个Model,如下: public class Province { public int id { get; set; } public string provinceID { get; set; } public string province { get; set; } } p...
阅读全文
摘要:在上一篇《MVC TIP4:为捕获路由及通用异常处理》里,我们讲了如何捕获MVC WEB站点的未捕获异常,这里我们还要解决一个问题,就是JQuery Ajax异常的捕获。Ajax异常的捕获仍旧需要借助于全局的ErrorController控制器,及其视图,在Views的Error文件夹下的Index视图。 我们知道,一个Ajax调用,通常像如下的形式: 如果调用出错,也就是调用CityContro...
阅读全文
摘要:对于未路由到的URL,可以如下处理。 1:首先,准备控制器 public class ErrorController : Controller { public ActionResult Index(string error) { ViewData["Title"] = "WebSite 网站内部错误"; ViewData["Description"] = error; return View("...
阅读全文
摘要:在开始介绍使用JQuery提交表单之前,先看一下非Ajax提交表单的形式,如下:1:非Ajax前台:对应后台:2:JQuery之Ajax在介绍使用JQuery提交表单前,我们需要首先引用jquery.form.js,它来自于http://www.malsup.com/jquery/form/,至此,我们需要引用的JS文件有:功能要求:Ajax提交表单,在控制器HelloWorld4Controller中处理请求,并返回若干数据,数据格式为JSON。首先,我们假设返回的JSON实体为: public class LoginResultDTO { public bool Success { get
阅读全文
摘要:1:简单路由建立MVC的时候会给我们创建默认的路由,如下: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults );表示假设你在浏览器的地址栏输入了下面的URL:/Home/Index/3默
阅读全文
摘要:1:默认的控制器映射该控制器映射,可以支撑常规的路径;默认约定是在匹配/Views/controllername/actionname.aspx的目录中查找一个aspx文件。2:IController接口所有的控制器最终都是继承自这个接口,一个最简单的控制器:3:Controller基类控制器可以有一个唯一的基类为Controller,一个简单的这样的控制器如下:根据映射,在前台地址输入:http://localhost:52588/Default1/就可以显式Index返回类型的ToString()结果。如上文中,注释的第一段,返回的是abc,注释的第二段,返回的是2,而Student返回的
阅读全文