码迷,mamicode.com
首页 > Web开发 > 详细

WebPages 扩展

时间:2014-06-25 12:34:30      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   ext   

终于被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 = HttpContext.Current.Request[i.Name];
                    if (requestValue == null) {
                        continue;
                    }
                    else {
                        var propertyValue = 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; }
    }
}

 

 

WebPages 扩展,布布扣,bubuko.com

WebPages 扩展

标签:style   class   blog   code   http   ext   

原文地址:http://www.cnblogs.com/xthzb/p/3807105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!