روشی که جناب حمزه معرفی کرده اند بسیار جالب بود، با تشکر فراوان.

من مشکل رو از طریق ModelBinder حل کردم. به این صورت:
public class StringModelBinder: IModelBinder
{
private readonly IModelBinder _fallbackBinder;

public StringModelBinder(IModelBinder fallbackBinder)
{
if (fallbackBinder == null)
throw new ArgumentNullException(nameof(fallbackBinder));

_fallbackBinder = fallbackBinder;
}
public async Task BindModelAsync(ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingConte xt.ModelName);
var attemptedValue = value.FirstValue;
var modifiedValue = value.ToString().Replace((char) 1610, (char) 1740).Replace((char) 1603, (char) 1705);
bindingContext.Result = ModelBindingResult.Success(modifiedValue);
}
}

public class StringEncodeModelBinderProvider : IModelBinderProvider
{
public IModelBinder GetBinder(ModelBinderProviderContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}

if (!context.Metadata.IsComplexType && context.Metadata.ModelType == typeof(string)) // only encode string types
{
var loggerFactory = context.Services.GetRequiredService<ILoggerFactory >();
return new StringModelBinder(new SimpleTypeModelBinder(context.Metadata.ModelType, loggerFactory));
}

return null;
}
}

public static class MvcOptionsExtensions
{
public static void UseStringEncodeModelBinding(this MvcOptions opts)
{
var binderToFind = opts.ModelBinderProviders.FirstOrDefault(x => x.GetType() == typeof(SimpleTypeModelBinderProvider));

if (binderToFind == null) return;

var index = opts.ModelBinderProviders.IndexOf(binderToFind);
opts.ModelBinderProviders.Insert(index, new StringEncodeModelBinderProvider());
}
}


در نمونه کد فوق، کلاس اصلی، کلاس StringModelBinder است. کلاس فوق اگر بصورت صحیح رجیستر شود، هنگام تبدیل تمام مقادیر دریافت شده String از تمام ورودی ها (Model, Post,Query String, Route Parameter) عمل می کند و مقدار دریافتی را تبدیل به تایپ String می کند. در هنگام تبدیل، هم جایگزینی حرف های ی و ک عربی به فارسی را نیز انجام می دهد.
برای ثبت کلاس های Model Binder در ASP.NET Core نیاز به یک کلاس Provider نیز هست که در نمونه کد فوق در قالب کلاس StringEncodeModelBinderProvider پیاده سازی شده است.

در نهایت، جهت معرفی کلاس StringModelBinder به عنوان تبدیل گر پیش فرض تایپ String در متد استاتیک UseStringEncodeModelBinding کدهای مورد نیاز برای رجیستر کردن کلاس تبدیل گر اضافه شده است.

برای فعال کردن این کلاس کافی است در فایل Startup در متد ConfigureServices به این صورت عمل کنید:
services.AddMvc(options => { options.UseStringEncodeModelBinding(); });