質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

1057閲覧

ASP.NET Core エラーメッセージが英語で表示される

saku_kidz

総合スコア2

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2023/01/24 03:42

編集2023/01/25 00:53

前提

ASP.NET Core MVCで申請書フォームを開発しております。
項目の一つに所要時間を分で入力する項目があり、数値以外はエラーにしたいと考えております。

Modelに、
[RegularExpression("([0-9]+)", ErrorMessage = "半角数字のみで入力")]
public short mtime { get; set; }
と記述し、Viewでは、
<input asp-for="mtime" class="form-control" placeholder="半角数字で入力" />
<span asp-validation-for="mtime" class="text-danger"></span>
と定義したのですが、実際に“+”記号等を入力すると、
Please enter a valid number. というエラーメッセージが表示されてしまいます。

Modelに定義した「半角数字のみで入力」という文言を表示させるには、
どの様にすれば良いかご教示の程お願い申し上げます。

補足情報(FW/ツールのバージョンなど)

開発環境:VS2022(17.4.4)、OS:Windows11 22H2
開発言語:C#
.NETバージョン 7.0.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2023/01/24 06:14

ASP.NET のタグをつけてください。
saku_kidz

2023/01/24 15:48

失礼いたしました。タグを追加いたしました。
guest

回答1

0

ベストアンサー

public short mtime { get; set; }

上のような short とか int などの整数型のプロパティの場合、当該 Tag ヘルパー

<input asp-for="mtime" class="form-control" placeholder="半角数字で入力" />

から生成される html の input 要素の type 属性は "number" となります。

そうなると RegularExpressionAttribute を使って数字か否かをチェックするようにしても無視されます。

それが質問者さんの現状だと思います。

html ソースの当該 input 要素を確認してください。ASP.NET によって type="number" が付与されているはずです。

当該 Tag ヘルパーに以下のように type="text" を追加すれば、html ソースの input 要素の type 属性は text になり、RegularExpressionAttribute に設定した正規表現が期待通り動くようになるはずです。

<input asp-for="mtime" class="form-control" placeholder="半角数字で入力" type="text"/>

投稿2023/01/24 09:08

編集2023/01/24 09:10
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saku_kidz

2023/01/24 15:53

ご教示頂きありがとうございます。 type="text"を追加したところ、RegularExpressionで記述した日本語メッセージが無事表示されました。 この度は誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問