随笔分类 -  ASP.NET MVC

摘要:部门和职员是1对多关系。用一个表格列出所有部门,并且在每行显示该部门下的所有职员名称。如下: 部门和职员的Model: using System.Collections.Generic;namespace MvcApplication1.Models{ public class Department { public int Id { get; set; } ... 阅读全文
posted @ 2014-06-10 18:23 Darren Ji 阅读(1460) 评论(0) 推荐(0)
摘要:有这样的一个Model: using System.ComponentModel.DataAnnotations;namespace MvcApplication1.Models{ public class Movie { public int Id { get; set; } [Required(ErrorMessage = "必填")] ... 阅读全文
posted @ 2014-06-09 23:35 Darren Ji 阅读(1304) 评论(0) 推荐(1)
摘要:当需要为Model的属性添加一些额外信息的时候,使用[AdditionalMetadata("somekey", "some content")]是不错的选择,MVC内部把键值信息赋值给了ModelMetadata.AdditionalValues属性。那么,在视图中如何获取该属性的ModelMetadata呢? ModelMetadata提供的静态方法FromLambdaExpression(... 阅读全文
posted @ 2014-06-08 11:02 Darren Ji 阅读(960) 评论(0) 推荐(1)
摘要:假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System;using System.ComponentModel.DataAnnotations;namespace MvcApplication1.Models{ public class Employee { public DateTime?... 阅读全文
posted @ 2014-06-07 23:56 Darren Ji 阅读(9527) 评论(0) 推荐(1)
摘要:文本编辑器有很多,比如ticymce和CKEditor就比较好用,但涉及到图片、文件上传,需要结合CKFinder实现,而且有些功能是收费的,即使有意付费使用, 支付也不方便。好在百度的开源文本编辑器UEditor现在也发展得不错,本篇就来体验其在MVC中的使用。需要实现如下效果:1、上传图片2、上... 阅读全文
posted @ 2014-06-07 18:52 Darren Ji 阅读(3690) 评论(9) 推荐(3)
摘要:使用StructureMap也可以实现在MVC中的依赖注入,为此,我们不仅要使用StructureMap注册各种接口及其实现,还需要自定义控制器工厂,借助StructureMap来生成controller实例。 有这样的一个接口: namespace MvcApplication1{ public interface IStrategy { string GetStra... 阅读全文
posted @ 2014-06-05 23:15 Darren Ji 阅读(1493) 评论(1) 推荐(0)
摘要:□ 思路 点击一个链接,把该文件的Id传递给控制器方法,遍历文件夹所有文件,根据ID找到对应文件,并返回FileResult类型。 与文件相关的Model: namespace MvcApplication1.Models{ public class FileForDownload { public int Id { get; set; } public ... 阅读全文
posted @ 2014-06-03 23:46 Darren Ji 阅读(3533) 评论(2) 推荐(1)
摘要:通常情况下,使用TempData需要记住key的名称,本篇体验:通过帮助类,实现对TempData的设置、获取、删除。 关于传递信息的类: namespace MvcApplication1.Models{ public class Notification { public bool IsShow { get; set; } public string ... 阅读全文
posted @ 2014-06-02 13:56 Darren Ji 阅读(1242) 评论(0) 推荐(1)
摘要:JCrop用来裁剪图片,本篇想体验的是: 在视图页上传图片: 上传成功,跳转到另外一个编辑视图页,使用JCrop对该图片裁剪,并保存图片到指定文件夹: 裁剪成功后,在主视图页显示裁剪图片: 当然,实际项目中最有可能的做法是:在本页上传、裁剪并保存。 □ 思路 →在上传图片视图页,把图片上传保存到一个临时文件夹Upload→在编辑裁剪视图页,点击"裁剪"按钮,把JCrop能提供的参数,比如... 阅读全文
posted @ 2014-06-02 12:42 Darren Ji 阅读(1762) 评论(0) 推荐(3)
摘要:借助Chosen Plugin可以实现多选下拉框。 选择多项: 设置选项数量,比如设置最多允许2个选项: 考虑到多选下拉选中项是string数组,Model应该这样设计: using System.Collections.Generic;using System.Web.Mvc;namespace MvcApplication1.Models{ public class CarV... 阅读全文
posted @ 2014-06-01 19:59 Darren Ji 阅读(5634) 评论(2) 推荐(2)
摘要:本文体验在MVC中使用ASP.NET Identity 2.0,体验与用户身份安全有关的功能: →install-package Microsoft.AspNet.Identity.Samples -Version 2.0.0-beta2 -Pre 安装后,在App_Start,Controllers, Models, Views等处都添加了多个文件。在App_Start/IdentityCon... 阅读全文
posted @ 2014-05-30 19:43 Darren Ji 阅读(6887) 评论(0) 推荐(6)
摘要:把视图省、市、街道表单数据,封装成一个类,作为action参数。如下: action方法参数类型: namespace MvcApplication1.Models{ public class Customer { public string Address { get; set; } }} 在自定义ModelBinder中,接收视图表单数据,封装成Customer类。 using Syste... 阅读全文
posted @ 2014-05-27 23:38 Darren Ji 阅读(998) 评论(0) 推荐(0)
摘要:□ ValueProvider的大致工作原理 →通过Request.Form, Request.QueryString, Request.Files, RouteData.Values获取数据。→然后把数据提供给Model Binder。 public interface IValueProvider{ bool ContainsPrefix(string prefix); Value... 阅读全文
posted @ 2014-05-27 22:53 Darren Ji 阅读(4317) 评论(0) 推荐(1)
摘要:比如,有这样一个类: public class User { public string Name { get; set; } } 当在强类型视图页,显示属性Name对应的input元素,并想添加一个title属性和对应的值,如图: □ 思路 →自定义TooltipAttribute,可以打到Name属性上。→自定义DataAnnotationsModelMetadataProvider,... 阅读全文
posted @ 2014-05-27 19:01 Darren Ji 阅读(1240) 评论(1) 推荐(2)
摘要:在Product类中有一个显示删除状态的属性DelFlag,在编辑视图页,对于所有的删除状态以RadioButtonList显示出来,如果RadioButtonList选项的value值与当前model的DelFlag属性值相同,则勾选该选项,如图: 思路: →在Views/Shared/EditorTemplates/RadioButtonList.chtml部分视图以RadioButton... 阅读全文
posted @ 2014-05-27 16:14 Darren Ji 阅读(2193) 评论(0) 推荐(1)
摘要:实现的效果为:在编辑视图中,对DateTime类型的属性,显示jQuery UI的datepicker。效果如下: Student.cs public class Student { public int Id { get; set; } public string Name { get; set; } public DateTime? JoinTime { get; set; } } Ho... 阅读全文
posted @ 2014-05-27 12:39 Darren Ji 阅读(978) 评论(0) 推荐(1)
摘要:与ActionFilter相关的接口有2个: □ IActionFilter 对action执行前后处理 void OnActionExecuting(ActionExecutingContext filterContext);可以在此对请求处理,甚至开启一个新的请求。 void OnActionExecuted(ActonExecutedContext filterContext);可以在此... 阅读全文
posted @ 2014-05-27 11:12 Darren Ji 阅读(1284) 评论(0) 推荐(0)
摘要:□ 接口 public interface IExceptionFilter{ void OnException(ExceptionContext filterContext);} ExceptionContext继承于ControllerContext,从中可以获得路由数据route data、HttpContext。 □ 的HandleErrorAttribute是对IExceptionFi... 阅读全文
posted @ 2014-05-27 00:51 Darren Ji 阅读(2740) 评论(2) 推荐(2)
摘要:为什么需要AuthorizationAttribute 在没有Authorization系统属性之前,我们可能这样判断:Request.IsAuthenticated && User.Identity.IsAuthenticated来判断请求是否有权限。 有了Authorization系统属性之后,我们可能这样:[Authorize]public ActionResult SomeAction... 阅读全文
posted @ 2014-05-26 23:10 Darren Ji 阅读(1514) 评论(0) 推荐(0)
摘要:希望实现的效果是:对购物车中所有商品的总价,实现9折或8折:当点击"9折":当点击"8折":□ 思路8折或9折是打折接口的不同实现,关键是:由什么条件决定使用哪种打折方式?--当点击8折或9折链接的时候,把参数放在路由中,然后在自定义控制器工厂中根据参数的不同选择使用哪种打折方式。□ model p... 阅读全文
posted @ 2014-05-26 13:47 Darren Ji 阅读(1195) 评论(0) 推荐(0)

我的公众号:新语新世界,欢迎关注。