記事詳細
- 投稿日
- 2026年08月28日03時55分
-
タイトル
-
Create.cshtmlにアクセス時、データベースのPaymentsのSubjectNameIdの列に(int 14)のデータがない場合、「“繰越金額”を入力して下さい」Yes,No,というSweetAlert2 を使ったモーダルダイアログを表示し、<form asp-action="Create">内にある<select asp-for="SubjectNameId" class="form-control" asp-
- 内容
-
わかりました。
やりたいことは以下の流れですね。- Create.cshtml にアクセスしたときに、
DB のPaymentsテーブルのSubjectNameIdに 14 が存在しない場合だけ SweetAlert2 モーダルを表示。 - モーダルで「Yes」を押したら
<select asp-for="SubjectNameId">の値を 14 に自動設定。 - 「No」を押したら何もしない(または別の処理)。
実装の全体像
1. コントローラー側で存在チェック
まず、
Createアクションで DB を確認し、存在しない場合にフラグを View に渡します。2. Create.cshtml 側で SweetAlert2 を表示
ViewBag.ShowModalがtrueのときだけ SweetAlert2 を呼び出し、
Yes の場合に<select>の値を14に設定します。3. ポイント
- DB チェックはサーバー側で行う
→ ページロード時に JS で DB を直接見ることはできないので、
コントローラーでViewBag.ShowModalをセットするのが安全。 - SweetAlert2 の Yes/No
→showCancelButton: trueとresult.isConfirmedで判定。 - 値の設定
→<select>のvalueを"14"にすれば選択状態になる。
✅ この方法なら、
- DB に 14 が存在しないときだけモーダルが出る
- Yes を押すと自動で
<select>が 14 にセットされる - No を押すと何もしない
が実現できます。
もし希望があれば、この SweetAlert2 の Yes 押下後に即フォーム送信するバージョン も作れますが、
今の仕様だと「選択だけしてユーザーに他の入力もさせる」形になっています。作りますか?
そうすれば「Yes → 自動選択 → 即送信」まで一気にできます。Powered by Froala Editor
- Create.cshtml にアクセスしたときに、
-
添付画像
-
画像はありません
- Genreのカテゴリ-名
- Contexts