-1
我想在我的web api .Net核心请求中替换所有۱
字符与1
?
如:
Number ۱
应该转换为Number 1
在MVC 5我以前HttpModule
,在.NET的核心我用中间件如下:在.NET核心请求,C#中的表单字段中替换一些字符?
namespace VistaBest.Api
{
public class PersianCharsMiddleware
{
private readonly RequestDelegate _next;
public PersianCharsMiddleware(RequestDelegate next)
{
_next = next;
}
public Task Invoke(HttpContext httpContext)
{
var collection = httpContext.Request.Form;
foreach (var controlKey in collection.Keys.Where(controlKey => !controlKey.StartsWith("__")))
{
collection[controlKey] = collection[controlKey].ToString().Replace("۱", "1");
}
return _next(httpContext);
}
}
public static class PersianCharsMiddlewareExtensions
{
public static IApplicationBuilder UsePersianCharsMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<PersianCharsMiddleware>();
}
}
}
但collection[controlKey]
是只读的,我不能赋值给它?
实际上,我必须编辑窗体的所有字符串字段,我应该怎么做?
我可以使用自定义模型绑定器吗?
@mjwills我不得不标准所有数字字符字符串字段并将其转换为英语 –
的可能的复制[如何修改asp.net核心中的HttpContext.Request.Form](https://stackoverflow.com/questions/42701311/how-to-modify-httpcontext-request-form-in-asp-net-core) – mjwills
I可以用自定义模型活页夹写入,请参阅答案 –