私は新しいオブジェクトを作成するフォームを入力する必要があるASP.NETアプリケーションを持っています。以下のように定義される:create
フォームに記入する際他の入力が満たされていない場合にのみ入力を入力する必要があります
public class Address
{
public int ID { get; set; }
[Required]
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string AddressLine3 { get; set; }
[Required]
public string City { get; set; }
public string Postcode { get; set; }
public string AirportCode { get; set; }
}
フィールドAddressLine1
とCity
が必要とされます。しかし、新しい開発では、フィールドを導入しましたAirportCode
、これは要件を変更します。基本的に、空港のコード値が与えられた場合、他の値は必要ありません。そうでない場合は、アドレス行1と都道府県の値はであり、それでもなおが必要です。ユーザーがフォームのいずれかを記入しなかった場合は、City
とAddressLine1
の値またはAirportCode
の値が与えられるまでエラーメッセージが表示されると思いますが、物事は、無効なオブジェクトを通過させないことです。
私は、ロジックは次のようになり推測:ここ
if AirportCode OR (AddressLine1 AND City)
はCity
入力フィールドの小さなサンプルです。アプリケーションによって生成されるデフォルトです:
<div class="form-group">
<label asp-for="City" class="col-md-2 control-label">City</label>
<div class="col-md-10">
<input asp-for="City" class="form-control" />
<span asp-validation-for="City" class="text-danger"></span>
</div>
</div>
JavaScriptを使用せずにこれを実装する方法はありますか?フォームの検証はこれまでのところとてもきちんとしていて簡単でしたし、フレームワークを通してこれを行うことができればと思っています。ありがとう。
補足:AirportCode
の入力が開始されると、後で他のフィールドをグレー表示したいことがあります。それは厳密にバリデーションに関連しているわけではありませんが、これに結びつくかもしれませんか?
私はExpressiveAnnotationsはasp.netコアをサポートしていないと思うまだhttps://github.com/jwaliszko/ExpressiveAnnotations/issues/90 –
彼は彼が、コアを使用していることを言っていませんか? – Anokrize
彼の質問はasp.net-coreとタグ付けされており、彼が表示しているコードは明らかにasp.net coreであり、ビューのtaghelpersを使用しています –