1

メソッドにはいくつかのメソッドがあり、いくつかのメソッドには他のメソッドがあります。
ウィンドウまたはダイアログ ボックスにメッセージを表示するには、エラー メッセージを top メソッドに渡すにはどうすればよいですか?
エラーメッセージではなく、注意メッセージか何かである可能性があります。
ASP.NET MVC についてアドバイスをいただければ幸いです。ASP.NET MVC では、アクション メソッドがトップになります。

4

5 に答える 5

1

最高のメソッドだけで 1 回の try catch を実行できる最も簡単な方法です。

MVC と asp.net に関しては、エンド ユーザーにエラーを表示したくありません。また、フォームで事前に検証を行うことで、警告を回避するのが最善です。

最後に、本当にエンド ユーザーに警告を表示する必要がある場合は、次のようにします。

  • 文字列「WarningMessage」というパブリック変数を作成します
  • プロセスを開始する前に値をリセットします
  • 警告がある各メソッド内の変数に警告を割り当てる/追加する
  • 戻りビューで WarningMessage に値があるかどうかを確認します。
  • 値がある場合は、メッセージを表示します
于 2012-05-08T12:12:02.093 に答える
1

1 つの可能性は、次のTryXXXパターンを使用することです。

public bool TryXXX(InputType input, out ResultType result, out string errorMessage);

そしてあなたのコントローラーで:

public ActionResult Foo()
{

    ResultType result;
    out string errorMessage;
    if (!TryXXX(input, out result, out errorMessage))
    {
        ModelState.AddModelError("", errorMessage);
        return View();
    }

    // here you could use the result
    ...

}

もう1つの可能性はModelState、エラーメッセージを追加する処理を行う下層に を渡すことです。これにより、コントローラーアクションで、ModelState.IsValidメソッドを呼び出した後に確認するだけで済みます。

さらに別の可能性として例外を使用することもできますが、例外は例外的なケースを処理するためだけに使用する必要があることに注意してください。ビジネス検証を処理するためには避けるべきです。

実際にはさまざまな方法があり、それはすべて、正確に何をしようとしているのかによって異なります。

于 2012-05-08T12:07:54.657 に答える
0

内部メソッドでは次を使用します。

HttpContext.Current.AddError(new Exception("error Message"));

コントローラーメソッドで:

foreach (var item in HttpContext.AllErrors)
{
    //item is Exception
}
于 2012-05-08T13:38:34.463 に答える
0

必要な場所にカスタム例外をスローします

throw new Exception("Message");

デフォルトでは、コードのどこかでキャッチしない限り、例外はスタックの一番上にバブルします (つまり、サーバー エラー ページを表示します)。

try{
  //code
} catch (Exception e) {
  //use exception to display the message
}

例外は、任意のサブ メソッドからスローされ、親メソッドによってキャッチされる可能性があります。

于 2012-05-08T12:11:56.273 に答える
-1

これは Javascript を使用して非常に簡単に行うことができます

var errorflag= false;
var msg='';
if(Failedcondition){
errorflag=true;
msg='Please verfiy first.';
}
if(SecondFailedCondition){
errorflag=true;
msg='Please verfiy first.';

}
else
{
other conditions
}
于 2012-05-08T12:09:54.557 に答える