首页 > 代码库 > WebPages 扩展
WebPages 扩展
终于被asp.net Mvc的目录结构搞晕了。
还在它用不过是因为 ActionResult 的参数可以传一个自定义类型,不用 Request[key] 一个个赋值。
现在搞出 webpage 的 InitModel(初始化一个自定义类型)。
using Newtonsoft.Json;using System;using System.Web;using System.Web.WebPages;namespace FDOA.Webpages.Common { public static class WebPagesExtend { public static T InitModel<T>(this WebPage webPages) where T : new() { return InitModel(webPages, new T()); } public static T InitModel<T>(this WebPage webPages,T theClass){ var tempClassType = typeof(T); var tempClassProperties = tempClassType.GetProperties(); foreach (var i in tempClassProperties) { try { var requestValue =http://www.mamicode.com/ HttpContext.Current.Request[i.Name]; if (requestValue =http://www.mamicode.com/= null) { continue; } else { var propertyValue =http://www.mamicode.com/ Convert.ChangeType(requestValue, i.PropertyType); i.SetValue(theClass, propertyValue, null); } } catch { } } return theClass; } public static HtmlString ToJson(this object obj) { var result = JsonConvert.SerializeObject(obj); return new HtmlString(result); } }}
调用:http://localhost/Default?age=132
@{ var model1 = this.InitModel<UserInfo>(); var model2 = this.InitModel(new UserInfo() { // 如果 Request["userid"] == null 则赋值 UserId="default" , // 如果 Request["IsLocked"] == null 则赋值 IsLocked = true });}@model1.ToJson()@model2.ToJson()@functions{ private class UserInfo { public string UserId { get; set; } public int Age { get; set; } public bool IsLocked { get; set; } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。