2017-08-16 43 views
1

私たちのASP.MVCプロジェクトでは、検証のためにDataAnnotations属性を使用しています。フィールドの1つにUrlが含まれていて、[Url]属性のマークが付いています。しかし、私がhttp://localhost:13030をフィールド値に入れると、検証をパスしていません。URLの検証属性が `localhost`を無効なURLとしてマーク

属性を使用してlocalhostを有効なターゲットとして定義する方法はありますか。

+0

あなたは 'http:// localhost'という意味ですか?独自の "localhost"は有効なURLではないためです。 – reckface

+0

確かに、単純化するために 'localhost'を使った' http:// localhost:13030'のようなものです。編集された質問 – ASpirin

答えて

1

UrlAttributeは、ここでソースコードに示されているRegExに対して有効です:https://github.com/Microsoft/referencesource/blob/master/System.ComponentModel.DataAnnotations/DataAnnotations/UrlAttribute.cs#L46

http://localhostは、.がないために一致しません。

他のオプションについては、この回答を参照してください:How I can validate urls in C# for localhost

EDIT:ソースコードによれば、dataAnnotations:dataTypeAttribute:disableRegExをAppSettingsに追加し、その値をtrueに設定することができます。これによりUrlAttributeの検証プロセスはにのみ行われ、http://,https://またはftp://で始まることが確認されます。同じソースファイルのLine 33を参照してください。

+0

答えに感謝、私はあなたが言及した投稿を見た。しかし、正確な属性を変更/構成できるかどうかは疑問です。 – ASpirin

+0

@ASpirin私はあなたのコメントに私の答えに編集で回答しました。 –

+0

'appSettings'に' 'を追加しましたが、結果は同じです、それをダブルチェックしてあなたに戻ります – ASpirin