私は立ち往生しています、誰が私を助けることができますか?その下Asp.NET MVC Ajax-FORMとAjax-Getを投稿
<form id="loginform" method="post" action="/Account/LogOn/">
、私は、OPTIONのドロップダウンリスト、確認ボタンで隠しDIVをしました:私のLogOn.aspxビューでは、私は、FORMタグ内のコントロール(ユーザー名、パスワード、リメンバー・ミー)のログインましたonclick_event:
$.ajaxSetup({ cache: false });
$.ajax({
type: "GET",
url: "/Account/SetCompanyAndContinue",
data: "{ 'id' : '1'}",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
まず、jQueryのでは、私はAJAXを経由してログイン資格情報を投稿し、ユーザーがログイン:
var loginCred = new Object();
loginCred.Username = $('#userName').val();
loginCred.Password = $('#password').val();
loginCred.RememberMe = $('#rememberMe').checked;
var myJsonObject = JSON.stringify(loginCred);
$.ajaxSetup({ cache: false });
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/Account/LogOnAjax/",
data: myJsonObject,
dataType: "json",
success: function(data) {
PostCredentialsSuccess(data);
}
});
このPOSTは完璧に動作します。コントローラアクションのブレークポイントはデバッガによってヒットされ、データのJSONオブジェクトを返します。このJSONデータをOPTIONドロップダウンリストに入れます。このOptionドロップダウンリストは、ユーザーに表示されます。
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult SetCompanyAndContinue(string id)
{
SessionAdapter.CustomerID = Convert.ToInt32(id);
return null;
}
しかし、それアイン:
$.ajaxSetup({ cache: false });
$.ajax({
type: "GET",
url: "/Account/SetCompanyAndContinue",
data: "{ 'id' : '1'}",
contentType: "application/json; charset=utf-8",
dataType: "json"
});
は、私が「SetCompanyAndContinue」という名前のコントローラのアクションがヒットされることを期待する:ユーザーが確認ボタンをクリックしたときに続いて、第二AJAX呼び出しが行われますtが起こって、代わりに、デフォルトコントローラアクションの初めてのヒットを取得:(!)
public ActionResult LogOn()
{
return View();
}
しかし私は(同じ)をクリックし二度目確認ボタンは、コントローラのアクションは最終的に[SetCompanyAndConを打ちますスズメ]。
誰かが私が間違っていることを教えてもらえますか?事前に多くの感謝。
確認ボタンにどのようにバインドしていますか? – karim79