第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在ASP.NET Core中的操作方法上禁用模型驗(yàn)證

在ASP.NET Core中的操作方法上禁用模型驗(yàn)證

C#
梵蒂岡之花 2021-04-05 17:14:32
我想在Controller中的特定Action方法上禁用模型驗(yàn)證。我有這種情況:public class SomeDto{    public string Name { get; set; }}public class SomeDtoValidator : AbstractValidator<SomeDto>, ISomeDtoValidator{    public SomeDtoValidator ()    {        RuleFor(someDto=> someDto.Name).NotNull().WithMessage("Name property can't be null.");    }}我有ISomeDtoValidator,因?yàn)槲乙宰约旱姆绞阶粤怂序?yàn)證器:public class Startup{    // .... constructor ....    public void ConfigureServices(IServiceCollection services)    {        services.AddOptions();        services.AddMvc(setup => {        //...others setups...        }).AddFluentValidation();        services.RegisterTypes(Configuration)                .RegisterFluentValidation()                .RegisterMappingsWithAutomapper()                .RegisterMvcConfigurations();    }    public void Configure(IApplicationBuilder app, IHostingEnvironment env, IConfiguration configuration)    {        // ...    }}我在控制器中有此操作方法:[DisableFormValueModelBinding]public async Task<IActionResult> CreateSome(Guid someId, SomeDto someDto){    //..... Manually binding someDto...    var validator = new SomeValidator();    validator.Validate(someDto);    // Doing something more ........    return Ok();}       我禁用了ModelBinding的MVC,因?yàn)槲蚁朐诮壎⊿omeDto之前做一些事情,因此,我也不想在SomeDto上應(yīng)用任何驗(yàn)證器。因此,有什么方法可以實(shí)現(xiàn)?例如,如下所示:[DisableValidator] // Or [DisableValidator(typeof(SomeDtoValidator))] whatever[DisableFormValueModelBinding]public async Task<IActionResult> CreateSome(Guid someId, SomeDto someDto){    //..... Manually binding someDto...    var validator = new SomeValidator();    validator.Validate(someDto);    // Doing something more ........    return Ok();}   
查看完整描述

3 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

實(shí)現(xiàn)了自己的目標(biāo),僅在驗(yàn)證器中放置了一個(gè)RuleSet。當(dāng)管道調(diào)用驗(yàn)證程序時(shí),它不會(huì)進(jìn)行驗(yàn)證,因?yàn)楣艿勒{(diào)用沒有RuleSet。貝婁是我如何解決此問題的一個(gè)示例:


public class CustomerValidator : AbstractValidator<Customer>

{

    public CustomerValidator()

    {

        RuleSet("Manually", () =>

        {

            RuleFor(x => x.Surname).NotNull();

            RuleFor(x => x.Forename).NotNull();

        });

    }

}


public ActionResult ActionWithoutValidationExecuted(Customer customer) 

{

    //..... Manually binding customer...


    var validator = new CustomerValidator();

    var validResult = validator.Validate(customer, ruleSet: "Manually");


    // Doing something more ........


    return Ok();

}


查看完整回答
反對 回復(fù) 2021-04-17
  • 3 回答
  • 0 關(guān)注
  • 640 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)