@Kateによって提案された部分的な修正を反映するように更新されました。新しい投稿の下の元の投稿:HttpPostのASP MVC3 HandleError
私はHttpPostアクションメソッドにAjaxコールを持っています。メソッドが例外なく実行されている場合は、div要素の部分ビューとしてデータをロードします(正常に実行されます)。例外がある場合は、asp mvc Errorビューをフルページビューとして読み込みます。ただし、以下のコードでは、例外により、エラービューがdiv要素の部分ビューとして読み込まれます。私はコントローラから何かを離しておく必要があります...
[HttpPost]
[HandleError]
public ActionResult LoadUnmappedProjects()
{
bool error = false;
try
{
throw new ArgumentException();
}
catch (Exception e)
{
error = true;
}
if (!error)
using (var db = new prismEntities())
{
return PartialView(db.dmPSPProjectStatewideRegionals.ToList());
}
else
{
return View("Error");
}
}
アイデア??? ASP MVC3のウェブアプリで
ORIGINAL POST
、私はへのAJAX呼び出しと[HttpPost]アクションメソッドを持っています。このメソッドはデータベースをヒットし、データを部分ビューに返します。データベースまたは関心のあるテーブルがダウンしている場合、私はエラービューを返したいと思います。 Error.cshtmlがレンダリングされません
[HttpPost]
[HandleError]
public ActionResult LoadUnmappedProjects()
{
try
{
throw new ArgumentException();
}
catch (Exception e)
{
throw new CustomDbException(e);
}
using (var db = new prismEntities()){
return PartialView(db.dmPSPProjectStatewideRegionals.ToList());
}
}
株式:しかし、私はこれを達成するための方法で[のHandleError]兼ね備えているように見える[HttpPost]とすることはできません。代わりに、エラーがAjax呼び出しに返され、現在は警告()がポップアップしています。上記の方法でエラービューをレンダリングさせるために何かできることはありますか?または、エラービューをレンダリングするためにAjax呼び出しで返されたエラーを使用する必要がありますか?
$.ajax({
url: pathLoadUnmappedProjects,
type: 'POST',
dataType: 'html',
contentType: 'application/json; charset=utf-8',
success: function (result) {
$('#unmappedProjects').html(result);
},
error: function() {
alert("Error:");
}
});
問題の解決済みの部分ですが、すべてではありません。アクションメソッドは正常に実行されますが、エラービューを部分ビューとして返します...ページ全体としてレンダリングします。私は何か他のものがありません... – rgwozdz
あなたのAjaxリクエストの一部として、または他のページにリダイレクトしたいというエラーページのレンダリング方法を指定してください。 – Kath
答えの更新を参照してください。 – Kath