asp.net – 如何将一个对象序列化为查询字符串格式?
发布时间:2020-05-23 03:21:28 所属栏目:asp.Net 来源:互联网
导读:如何将对象序列化为查询字符串格式?我似乎找不到在谷歌的答案。谢谢。 这里是我将序列化的对象作为一个例子。 public class EditListItemActionModel{ public int? Id { get; set; } public int State { get; set; } public string Prefix { get; set; }
|
如何将对象序列化为查询字符串格式?我似乎找不到在谷歌的答案。谢谢。 这里是我将序列化的对象作为一个例子。 public class EditListItemActionModel
{
public int? Id { get; set; }
public int State { get; set; }
public string Prefix { get; set; }
public string Index { get; set; }
public int? ParentID { get; set; }
}
解决方法我99%肯定没有内置的实用程序方法。这不是一个很常见的任务,因为Web服务器通常不会使用URLEncoded键/值字符串进行响应。你如何混合反射和LINQ?这工作: var foo = new EditListItemActionModel() {
Id = 1,State = 26,Prefix = "f",Index = "oo",ParentID = null
};
var properties = from p in foo.GetType().GetProperties()
where p.GetValue(foo,null) != null
select p.Name + "=" + HttpUtility.UrlEncode(p.GetValue(foo,null).ToString());
// queryString will be set to "Id=1&State=26&Prefix=f&Index=oo"
string queryString = String.Join("&",properties.ToArray());
更新: 要编写一个返回任何1深度对象的QueryString表示形式的方法,您可以这样做: public string GetQueryString(object obj) {
var properties = from p in obj.GetType().GetProperties()
where p.GetValue(obj,null) != null
select p.Name + "=" + HttpUtility.UrlEncode(p.GetValue(obj,null).ToString());
return String.Join("&",properties.ToArray());
}
// Usage:
string queryString = GetQueryString(foo);
你也可以使它成为一个扩展方法,没有太多的额外工作 public static class ExtensionMethods {
public static string GetQueryString(this object obj) {
var properties = from p in obj.GetType().GetProperties()
where p.GetValue(obj,null) != null
select p.Name + "=" + HttpUtility.UrlEncode(p.GetValue(obj,null).ToString());
return String.Join("&",properties.ToArray());
}
}
// Usage:
string queryString = foo.GetQueryString(); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 是否可以使用自定义错误页面与MVC网站,但不
- asp.net-mvc – asp.net mvc授权使用角色
- asp.net-mvc – ASP.NET MVC模型绑定外键关系
- asp.net-mvc – 在OnActionExecuting事件中更改模型
- 什么是IIS和Asp.Net中的应用程序池?
- asp.net – 格式化DataBinder.Eval数据
- asp.net – 网站在解决方案构建后需要很长时间才能启动
- asp.net-mvc – 所有ASP.NET Web API控制器返回404
- ASP.NET对大文件上传的解决方案
- asp.net-mvc – 动作过滤器执行顺序
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC:添加将DisplayName
- 如何将ASP.NET FormView绑定到单个记录?
- 在ASP.NET应用程序之间传递会话数据
- asp.net – 为什么默认情况下GET请求返回JSON不允
- asp.net-core – 如何在aspnet核心应用程序中为静
- asp.net – IIS URL重写 – 具有多个域
- asp.net-mvc – 从Ajax表单帖子中重定向
- asp.net – 忽略在IIS中为代码400(错误请求)配置
- asp.net – MVC ViewModel错误 – 没有为此对象定
- asp.net-mvc – 发送asp.net mvc动作结果里面的电
热点阅读
