Asp.Net MVC在过滤器中使用模型绑定
2016-09-03 21:32
531 查看
废话不多话,直接上代码
1、创建MVC项目,新建一个过滤器类以及使用到的实体类:
继承了AuthorizeAttribute类中的OnAuthorization方法会在执行Action之前执行,具体可以查看我写的这篇文章《Asp.Net MVC过滤器》
2、新建一个控制类,并在控制器贴上DemoFilters特性:
3、访问url:
http://localhost:8290/home/index?id=1&name=lisi
输出:{"Id":1,"Name":"lisi"}
1、创建MVC项目,新建一个过滤器类以及使用到的实体类:
public class DemoFiltersAttribute : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { var person = new Person(); //过滤器中使用模型绑定 BindModel<Person>(filterContext, person); filterContext.Result = new JsonResult() { Data = person, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; //base.OnAuthorization(filterContext); } /// <summary> /// 模型绑定 /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="model">模型(绑定成功后将会给此赋值)</param> /// <param name="prefix">获取或设置在呈现表示绑定到操作参数或模型属性的标记时要使用的前缀</param> public void BindModel<TModel>(AuthorizationContext filterContext, TModel model, string prefix = "") where TModel : class { IModelBinder binder = ModelBinders.Binders.GetBinder(typeof(TModel)); ModelBindingContext bindingContext = new ModelBindingContext() { ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, typeof(TModel)), ModelName = prefix, ValueProvider = filterContext.Controller.ValueProvider }; binder.BindModel(filterContext.Controller.ControllerContext, bindingContext); } }
public class Person { public int Id { set; get; } public string Name { set; get; } }
继承了AuthorizeAttribute类中的OnAuthorization方法会在执行Action之前执行,具体可以查看我写的这篇文章《Asp.Net MVC过滤器》
2、新建一个控制类,并在控制器贴上DemoFilters特性:
[DemoFilters] public class HomeController : Controller { // GET: Home public ActionResult Index(Person p) { return Content("123"); } }
3、访问url:
http://localhost:8290/home/index?id=1&name=lisi
输出:{"Id":1,"Name":"lisi"}
相关文章推荐
- 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
- ASP.NET MVC 常用扩展点:过滤器、模型绑定等
- ASP.NET MVC 常用扩展点:过滤器、模型绑定等
- ASP.NET MVC中 Jquery AJAX 获取数据利用MVC模型绑定实现输出
- Asp.Net MVC模型绑定
- ASP.NET MVC模型绑定的6个建议,徐汇区网站设计
- 使用过滤器过滤asp.net mvc输出内容
- ASP.NET MVC 教程 - 使用实体框架创建模型类(C#)
- ASP.NET MVC 模型绑定的 6 个建议
- [翻译] 使用ASP.NET MVC操作过滤器记录日志
- ASP.NET MVC模型绑定的6个建议
- ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证
- ASP.NET MVC模型绑定
- ASP.NET MVC Music Store教程(6):使用数据注释为模型进行验证
- (转)ASP.NET MVC 模型绑定的功能和问题
- ASP.NET MVC模型绑定的6个建议
- Asp.Net MVC 模型(使用LINQ to SQL创建Model类)
- ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证
- Asp.Net MVC 模型(使用LINQ to SQL创建Model类) – Part.2
- Asp.Net MVC 模型(使用LINQ to SQL创建Model类)2