簡體   English   中英

禁用對 ASP.Net Core 中特定輸入的驗證

[英]Disable validation for specific inputs in ASP .Net Core

在 ASP 上驗證表單時遇到問題。

我有 2 個模型 Person 和 Address。 他們每個人都有自己特定的 forms 以使用 EF Core 添加條目。

在 Person 表單中,我需要隱藏輸入來跟蹤潛在的 Address 相關數據(沒有 Address 也很好)。 就此而言,我使用隱藏的輸入字段,但因為地址 model 具有驗證注釋,生成的標記反映了它,在驗證時將 ModelState.IsValid 設置為 false,當然,除非我正在編輯具有有效地址數據的人。

我還嘗試在特定情況下將 Person.Address 設置為 null,它應該在實際檢查其值之前設置,但它不起作用。 到那時 ModelState 更新可能已經太遲了。

if (Person.Address is not null && Person.Address.Id == 0)
    Person.Address = null;

if (ModelState.IsValid)
    // Further code to save data in DB
else
    // Code to redisplay the page

我想知道是否有辦法告訴 ASP 不要驗證/忽略特定的輸入字段但仍然允許我保留一段數據?

非常感謝你。

編輯:根據評論中的要求,我添加了帶有注釋的類

此人

public class Person
{
  [Key]
  public int Id { get; set; }

  [Required]
  public string FirstName { get; set; }

  [Required]
  public string LastName { get; set; }

  [Range(0, 150)]
  public int Age { get; set; }

  public Address Address { get; set; }
}

地址 class

public class Address
{
  [Key]
  public int Id { get; set; }

  [Required, MaxLength(50)]
  public string Street { get; set; }

  [Required, MaxLength(50)]
  public string City { get; set; }

  [Required, MaxLength(50)]
  public string Country { get; set; }
}

OK 問題解決了。 我發現了一些有趣的文檔。

感謝您的提議。

在此處輸入圖像描述

您可以跳過不想驗證的那些字段上的數據注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM