MVC集合ModelBinder
2024-09-06 06:30:21
使用腳本提交集合类时,MVC binding
public class FormExtensionValueProviderFactory : ValueProviderFactory
{
public override IValueProvider GetValueProvider(ControllerContext controllerContext)
{
NameValueCollection requestData = new NameValueCollection();
var headers = controllerContext.RequestContext.HttpContext.Request.Headers;
foreach (string key in headers.Keys)
{
requestData.Add(key.Replace("-", ""), headers[key]);
}
var forms = controllerContext.RequestContext.HttpContext.Request.Form;
foreach (string key in forms.Keys)
{
if (!string.IsNullOrEmpty(key))
{
requestData.Add(ReplaceText(key), forms[key]);
}
}
return new NameValueCollectionValueProvider(requestData, CultureInfo.InvariantCulture);
} public string ReplaceText(string CommandText)
{
Regex reg = new Regex(@"(?<part1>(\S*)\[)(?<part2>(\d*)\])(?<part3>(\[\S*\]))", RegexOptions.IgnoreCase | RegexOptions.Multiline);
var result = reg.Match(CommandText).Groups; if (result["part2"] != null && result.Count > )
{
string part1 = result["part1"].Value;
string part2 = result["part2"].Value;
string part3 = result["part3"].Value;
return result["part1"].Value + result["part2"].Value
+ result["part3"].Value.Replace("[", ".").Replace("]", "");
}
else
{
return CommandText;
}
} }
在 Application_Start 添加
ValueProviderFactories.Factories.Insert(, new FormExtensionValueProviderFactory());
最新文章
- MVVM大比拼之knockout.js源码精析
- Scrapy开发指南
- 云硬盘error、error deleting、deleting状态(数据库基本操作小记)
- JavaScript中的各种宽高属性
- 解决stackoverflow打开慢不能注册登录
- git查看历史命令
- JDBC的批量批量插入
- com.service.impl
- JS单击隐藏界面元素
- hibernate生成查询语句但查不到数据
- Monkey Tradition(中国剩余定理)
- Identity
- WPF(x:Null 使用)
- Android开发艺术2之Activity的启动模式
- PHP+Redis 不注意这些细节简直就是跳入一个出不来的坑(windows下安装)
- Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition
- vue 线上不支持put方法
- spring boot启动后执行方法
- [skill] vim 操作多个window
- 使用eclipse自动生成WSDL客户端代码
热门文章
- 记录集导出到Excel方法
- promise学习,多看几次。含node,ES6知识
- jmeter的使用---用户变量
- AS报错:Class kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter can not access a member of class com.android.build.gradle.tasks.ManifestProcessorTask with modifiers ";private";
- Java出现NoSuchElementException异常
- INCA二次开发-INCACOM
- Wx-小程序-组件式开发之Vant
- 「JSOI2015」地铁线路
- ubuntu14.04安装好Hadoo之后接着安装hbase和介绍常用命令
- max=(a>;b)?a:b;