を使用して別のコントローラからメソッドを呼び出そうとしています。しかし、それは動作しません。説明してください、私が間違っていることはありますか?ASP.Net MVC Ajaxリクエストのサーバーから新しいページにリダイレクト
[HttpPost]
public ActionResult AddToWishList(int id, bool check)
{
var currentUser = WebSecurity.CurrentUserId;
if (currentUser != -1)
{
// ...
}
else
{
return RedirectToAction("Login", "Account");
}
}
私はHTMLでメソッドを呼び出す:
<script>
$(document).ready(function() {
/* call the method in case the user selects a checkbox */
$("#checkbox".concat(@Model.Id)).change(function() {
$.ajax({
url: '@Url.Action("AddToWishList", "Item")',
type: 'POST',
data: {
id: '@Model.Id',
check: this.checked
}
});
});
});
私が使用している場合はそれが機能:
success: function (result) {
window.location.href = "@Url.Content("~/Account/Login")";
}
しかし、私はログインしてナビゲートする必要はありません( )をクリックするたびに、ユーザーが承認されていない場合に限ります。コントローラでリダイレクトを使用する方法を教えてください。
Ajax投稿は非同期で、JavaScriptを使用してリダイレクトする必要があります。あなたはajax経由で投稿リクエストを作成することはできず、サーバーのエンドポイントでブラウザを新しいウィンドウに移動させることはできません。 –
$( "#checkbox")を実行する前にif @ model.id!= -1を入れてみてください... – nocturns2