次のようなコントローラーにメソッドがあります。
[HttpPost]
public void UnfavoriteEvent(int id)
{
try
{
var rows = _connection.Execute("DELETE UserEvent WHERE UserID = (SELECT up.UserID FROM UserProfile up WHERE up.UserName = @UserName) AND EventID = @EventID",
new { EventID = id, UserName = User.Identity.Name });
if (rows != 1)
{
Response.StatusCode = 500;
Response.Status = "There was an unknown error updating the database.";
//throw new HttpException(500, "There was an unknown error updating the database.");
}
}
catch (Exception ex)
{
Response.StatusCode = 500;
Response.Status = ex.Message;
//throw new HttpException(500, ex.Message);
}
}
ご覧のとおり、このエラーを元に戻すためにいくつかの異なる方法を試しました。JavaScript には、このメソッドを呼び出す次のブロックがあります。
var jqXHR;
if (isFavorite) {
jqXHR = $.ajax({
type: 'POST',
url: '/Account/UnfavoriteEvent',
data: { id: $("#EventID").val() }
});
}
else {
jqXHR = $.ajax({
type: 'POST',
url: '/Account/FavoriteEvent',
data: { id: $("#EventID").val() }
});
}
jqXHR.error = function (data) {
$("#ajaxErrorMessage").val(data);
$("#ajaxError").toggle(2000);
};
今、私がやりたいことは、発生したエラーをjqXHR.error
関数にスローして、適切に処理できるようにすることです。
現在、コメントを外したコードは、配置しているテキストStatus
が許可されていないという例外をスローし、コメントを付けたコードは、実際には応答として標準エラー ページを返します (驚くべきことではありません)。
それで、私はいくつかの質問があります:
- エラーを適切にスローするにはどうすればよいですか?
- プロパティは何をし
Response.Status
ますか?
皆さんありがとう!