🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

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

Q&A

1回答

3696閲覧

MVCで開発を行っているのですが、DB登録後に完了・エラーメッセージを表示したいです。

miraiokuno

総合スコア6

C#

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

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

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

1グッド

2クリップ

投稿2019/10/07 15:01

前提・実現したいこと

ASP.NETで開発を行っており、
controllerでDBに登録を行った後に、
View側で完了またはエラーメッセージを表示したいのですが、
やり方やサンプルが調べても出てきません。
(調べ方が悪いかもしれないですが。)

何か参考となるWEBサイトを紹介していただきたいです。
もしくはサンプルコード、メソッド名、イメージ感等でも大丈夫です。
お願いいたします。

使用言語
・html
・javascript
・c#

補足
・子画面、アラートのどちらでも大丈夫です。

dotnetuseryamag👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/10/07 19:46

開発環境 (OS, Visual Studio, SQL Server のバージョン、.NET or CORE どちらかとそのバージョンなど) を書いてください。
退会済みユーザー

退会済みユーザー

2019/10/07 19:55

自分でどこまで実装できているか、書いてください。未完成でもいいので、コードをアップするのが一番分かりやすいと思います。 どういう状況を完了・エラーとするのか書いてください。特にエラーはユーザーの入力ミス、同時事項制御違反、サーバーダウンなどなどいろいろ原因がありそうですが、どう考えてますか?
guest

回答1

0

質問のコメントに対する返事がないまま質問者さんはどこかに行ってしまったようですが、参考になるかもしれない Microsoft のチュートリアルを紹介しておきます。

.NET Framework ベースの MVC5 アプリの場合は、以下の記事のチュートリアルを上から順番に一通りやってみるのが良いと思います。(少々難しいのと日本語への翻訳が良くないのが問題ですが、内容的には非常に役に立つと思います。Azure にデプロイとか関係ないところがあればスキップしてください)

MVC 5 を使用する Entity Framework 6 Code First の概要
https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/

controllerでDBに登録を行った後に、View側で完了またはエラーメッセージを表示したいのですが、

「登録」の場面であれば、基本は上に紹介した記事の「基本 CRUD 機能を実装する」のリンク先のページの「Create ページを更新する」のセクションのコードになります。

探すのも面倒でしょうから記事のコードを以下にコピペしておきます。

[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "LastName, FirstMidName, EnrollmentDate")]Student student) { try { if (ModelState.IsValid) { db.Students.Add(student); db.SaveChanges(); return RedirectToAction("Index"); } } catch (DataException /* dex */) { //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } return View(student); }

質問者さんが言う「完了」が、Create のコードで db.SaveChanges(); がエラーなく実行できたということで良ければ、次の行の return RedirectToAction("Index"); が実行されるので、一覧 (Index) が表示されることで確認できます。

質問者さんの言う「エラー」が、try 句の中で DataException (DB 関係の例外) がスローされた場合ということで良ければ、その例外が catch 句で捕捉されるので ModelState.AddModelError メソッドでエラーメッセージを設定てきます。

Create のコードを見てください。コードの最後の行 return View(student); で元の Create 画面が再描画されますが、その際その画面に ModelState.AddModelError メソッドに設定したエラーメッセージが表示されます。

上の質問の私のコメントで、

特にエラーはユーザーの入力ミス、同時事項制御違反、サーバーダウンなどなどいろいろ原因がありそうですが、どう考えてますか?

と書きましたが、サーバーダウンを含む DB 操作関連で出るエラーはこれで捕捉できるはずです。

さらに、上に紹介した記事の「接続復元性とコマンド傍受」のリンク先のページに従って "connection resiliency (automatic retries for transient errors) and command interception (catch all SQL queries sent to the database in order to log or change them)" (← 日本語の翻訳が変なので英文の記事から抜粋)を実装するのもお勧めです。

ユーザーの入力ミスと同時事項制御違反の対応についても、紹介したチュートリアルを読み進めていけば出てきますので、一通り読んでみてください。

CORE 用には、上に紹介した .NET 用のチュートリアルほど詳しくないですが、以下のチュートリアルがあります。ご参考まで。

ASP.NET Core MVC で Web アプリを作成する
https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/first-mvc-app/?view=aspnetcore-2.2

投稿2019/10/10 02:51

編集2019/10/11 01:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問