CountryCode
、AreaCode
、PhoneNumber
のような電話番号フィールドを持つ顧客フォームがあります。私はこれらの3つのフィールドのカスタム検証を書いて、それらのすべてが空のままか(オプションであるか)、それらのすべてが満たされたままにできるか(1つまたは2つが満たされていればフィールドを空にすることはできません) このような状況のためのカスタム検証を作成しようとしていますが、それを行う方法が明確ではありません。助けてください。MVCを使用して複数のフィールドのカスタム検証を書き込む
答えて
あなたが探しているものが正確に不明です。ブール論理に苦労しているのであれば、必要なものは次のとおりです。
if (!String.IsNullOrWhiteSpace(model.CountryCode) ||
!String.IsNullOrWhiteSpace(model.AreaCode) ||
!String.IsNullOrWhiteSpace(model.PhoneNumber))
{
if (String.IsNullOrWhiteSpace(model.CountryCode)
{
ModelState.AddModelError(nameof(model.CountryCode), "Country code is required.");
}
if (String.IsNullOrWhiteSpace(model.AreaCode)
{
ModelState.AddModelError(nameof(model.AreaCode), "Area code is required.");
}
if (String.IsNullOrWhiteSpace(model.PhoneNumber)
{
ModelState.AddModelError(nameof(model.PhoneNumber), "Phone number is required.");
}
}
まず、値があるかどうかを確認するだけです。次に、値を持たないそれぞれのエラーを個別に追加します。
つまり、これらの電話番号のフィールドは細かいところです。私はそのアイデアがどこから来たのかは分かりませんが、今は人々をすぐに奪うことができないようなものです。電話番号の形式はと大きく変わってで、実際にはすべての電話番号に「市外局番」があるわけではありません。 farの場合、ユーザーが電話番号全体を入力するだけの単一の「電話」フィールドを持つ方がよい。次に、port of Google's libphonenumber libraryのようなものを使用して番号を検証し、標準形式にフォーマットすることができます。このように保存する必要がある場合は、ライブラリを使用して、国別コード、市外局番、および番号の各部分を解析することもできます。市外局番が価値を持たない場合もありますが、正確に3桁ではない可能性があります。同じことが、番号部分のために行く:「US」:あなたは、それは常にcountryISO2
は、2文字の国コードである7
検証電話番号
var phoneUtil = PhoneNumberUtil.GetInstance();
try {
var phoneNumber = phoneUtil.Parse(model.Phone, countryISO2);
if (!phoneUtil.IsValidNumber(phoneNumber))
{
ModelState.AddModelError(nameof(model.Phone), "Invalid phone number.");
}
} catch (NumberParseException) {
ModelState.AddModelError(nameof(model.Phone), "Invalid phone number.");
}
になりますと仮定することはできません、 "GB"など。国際電話番号を受け入れる場合は、ユーザーから国を収集する必要があります。可能であれば
フォーマットの電話番号
phoneUtil.Format(phoneNumber, PhoneNumberFormat.NATIONAL);
は、任意のコードの電話番号
var countryCode = phoneNumber.CountryCode;
string areaCode;
string number;
var nationalSignificantNumber = phoneUtil.GetNationalSignificantNumber(phoneNumber);
var areaCodeLength = phoneUtil.GetLengthOfGeographicalAreaCode(phoneNumber);
if (areaCodeLength > 0) {
areaCode = nationalSignificantNumber.Substring(0, areaCodeLength);
number = nationalSignificantNumber.Substring(areaCodeLength);
} else {
areaCode = "";
number = nationalSignificantNumber;
}
ありがとうございます。これは参考になります。 – JavvyM
- 1. 複数の列を使用してExcel文書を書き込む
- 2. 関数を使用して複数の変数をファイルに書き込む
- 3. Talend Open Studioを使用してJSONをフィールドに書き込む
- 4. Softlayerオブジェクトストレージ検索APIを使用して複雑なクエリを書き込む
- 5. 複数のStringパラメータを使用したPlay Frameworkカスタム検証エラー
- 6. PropertiesConfigurationを使用して複数の行プロパティ値を書き込む方法は?
- 7. Pythonを使用してExcelで複数の行を書き込む
- 8. パイプを使用して複数のデータベース接続にテーブルを書き込む
- 9. openpyxlを使用して複数行の文字列をセルに書き込む
- 10. NodeJSを使用して複数の場所にサブクエリを書き込む方法
- 11. ObjectOutputStreamを使用して単一のZipOutputStreamに複数のZipEntryに書き込む
- 12. MVC 2 vs MVC 3 DataAnnotationsModelValidatorProvider.RegisterAdapterを使用したカスタム検証属性
- 13. 複数の.csvファイルを書き込む
- 14. 書き込みを使用してファイルディスクリプタに整数を書き込む?
- 15. 複数の.ncを開き、複数のラスタを書き込む
- 16. SharePoint:APIを使用して直接検索インデックスに書き込む
- 17. forループで複数のサブプロセスを使用して同じファイルに書き込む
- 18. 複数の他のフィールドの値を検証するカスタムLaravel 5バリデータを作成して使用する方法
- 19. jqueryフォームウィザードを使用してカスタム検証を書く
- 20. xmlを使用してhtmlに複数行を書き込む方法
- 21. Rails:複数のモデルに同じカスタム検証メソッドを使用
- 22. MVC 3複数のチェックボックスのカスタム検証属性
- 23. dataAnnotationの検証を使用してmvcでAadharの検証
- 24. Excel VBA変数を使用してFDFファイルを書き込む
- 25. バッチを使用して.txtファイルに変数を書き込む
- 26. マクロを使用してファイルに変数を書き込む
- 27. Pythonを使用してExcelに数式を書き込む
- 28. 同じフォームを使用して複数のテーブルに複数の挿入を書き込む方法PHP
- 29. イメージを複数のフォントでJavaでラップして書き込む
- 30. バットファイル:複数のファイルを解析してCSVに書き込む
の構成部品を取得しますか? – Niladri
[jquery validate:テキストボックスのグループの全部または一部に値があることを検証する方法](https://stackoverflow.com/questions/28139282/jquery-validate-how-to-validate-that-all-or- v4)と** this [fiddle](http://jsfiddle.net/t9y2x3jf/) – adiga
[ASP.NET MVC 3での検証の完全なガイド - パート2](https://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2) –