:
public AuthController
{
[HttpPost]
public JsonResult CheckAuthentication(string UserName, string Password)
{
return Json(Membership.ValidateUser(UserName, Password));
}
}
JS:
あなたの質問は...
CSので、ここで、混乱して基本的な考え方でありますサーバコントローラに接続してクライアントスクリプトの結果を得るには、このようにすることができます
アクションがありますメソッドを使用して、このようなユーザー名のパスワードの組み合わせを検証します。あなたはあなたのメソッドで行うバリデーションに基づいてアクションメソッドからJson
を返します。 jSon通信に使用できるクラス「JsonDataResult
」を宣言します。このクラスには、「Message
」という文字列プロパティ(「成功」/「エラー」)と、エラーメッセージが格納されている場合はそれを格納する文字列のリストがあります。
public class JsonDataResult
{
public string Message { get;set;}
public List<String> Items = new List<String>();
}
とここに私の対処法は、ユーザー名とパスワードが正しい場合は、「成功」とのメッセージの値を設定することができます
public ActionResult Logon(string userName,string password)
{
// check your username password and if there is its not valid, do this
List<String> errors = new List<String>();
errors.Add("username is not available");
errors.Add("password is not nice!");
var data = new JsonDataResult { Message = "Errors", Items = errors };
return Json(data);
}
のように見えています。エラーメッセージの追加もスキップできます。
クライアントスクリプトから、jQuery postを使用してデータをアクションメソッドに送信し、jSon結果を受け取り、メッセージプロパティの値を確認します。 「エラー」と表示された場合は、各エラーをループして表示します。
$(function() {
$("form").submit(function() {
$.post('@Url.Action("Logon","Account")', { userName: $("#username").val(), password: $("#password").val() }, function (data) {
if (data.Message == "Errors") {
$.each(data.Items, function (index) {
alert(data.Items[index]);
});
}
else
{
// validation is successful.May be you want to redirect now ?
}
});
return false;
});
});
を求めていますか? – jrummell
Webサービスからカスタムオブジェクトを取得しています。標準のMVCのものやモデルではありません。だから私は "組み込みの"メソッドを使用することはできません。したがって、認証というだけでなく、ページを離れずにカスタムオブジェクトをWebサービスから取得することも少なくなります。 – TylerJPresley