imはjquery.postを使用しています。私の問題は、コントローラからの成功でなければ何を返すべきか分からないということです。モデルステートが有効でない場合、以下のコントローラをチェックしてみましょう。jquery投稿を使用して、成功しない場合は何を返しますか?
public ActionResult SendNewsLetter(FooterViewModel viewModel)
{
if (ModelState.IsValid)
{
try
{
var email = _newsletterService.GetAll().Where(x => x.Email == viewModel.Email).SingleOrDefault();
if (email == null)
{
_newsletterService.Save(new NewsletterEmail() { AddedDate = DateTime.Now, Email = viewModel.Email, IdGuid = GenerateGuid.Generate() });
_email.Send(viewModel.Email, "Title", "body", AppSetting.Value(Key.Email()));
}
else
{
_newsletterService.Delete(email.Id);
}
if (Request.IsAjaxRequest())
{
return Content(FeedBackMessages.NewsletterSuccess());
}
else
{
return RedirectToAction("Index", "Home");
}
}
catch (Exception)
{
//What to put here?
}
}
if (Request.IsAjaxRequest())
{
//What to put here?
return Content("");
}
else
{
return RedirectToAction("Index", "Home");
}
}
私のjqueryの
$('#formNewsletter').submit(function() {
$.post(this.action, $(this).serialize(), function (data) { success(data); });
return false;
});
function success(message) {
//TODO the real success handle
alert(message);
};
病気ありがとうございます。しかし、あなたが私のコントローラを見て、もしモデルステートがvaildでなく、そのRequest.IsAjaxRequestが空の文字列を返すならエラーではないでしょう。それについてどうすればいいですか? –
@ Dejan.S私はあなたの2番目の質問に答えるための編集を追加しました。希望が役立つ –