1

jqueryを使用してテキストボックスの変更イベントでJSONメソッドを呼び出したい。

以下は私のJsonResultメソッドがどのように見えるかです

public JsonResult GetUserName(string emailId)
{
    string UserName = "";
    var query = (from u in DbContext.Users
                 where u.User_Email.ToLower() == emailId.ToLower()
                 select u).SingleOrDefault();
    if(query!=null)
    {
        UserName = query.User_FirstName +", "+query.User_LastName;
    }
    return Json(UserName, JsonRequestBehavior.AllowGet);
}

以下は私のビューコードです

Email:&nbsp;<input type="text" id="txtEmail" /><br /><br />
Name:&nbsp;<input type="text" id="txtName" />

以下はjqueryコードです

<script type="text/javascript">
        $(document).ready(function () {
            //$("#txtEmail").first().focus();

            $("#txtEmail").change(function () {
                var emailId = $(this).val();
                //$("#txtName").val(emailId);
                $.ajax({
                    url: 'GetUserName',
                    type: 'POST',
                    data: JSON.stringify({ emailId: emailId }),
                    dataType: 'json',
                    contentType: 'application/json',
                    success: function (data) {
                        if (data != "" || data != null) {
                            $("#txtName").val(data);
                        }
                        else {
                            alert("Our system does not recognize this email. Please try again.");
                            $("#txtEmail").focus();
                        }
                    }
                });
            });
        });
    </script>

注....私のGetUserNameJsonResultメソッドは、私のデフォルトコントローラーに属しています。

私のjqueryコードは変更イベントで正常に実行されていますが、GetUserNameメソッドが呼び出されません...不足しているものを教えてください。

ありがとう、

4

1 に答える 1

2

あなたのURLは間違っています/DefaultControllerName/GetUserName(URLでコントローラーを指定する必要があるデフォルトのアクションではない場合、これがデフォルトのコントローラーであることは問題ではありませんGetUserName)。そのため、常に組み込みを使用しUrlHelperてURLを生成する必要がありますASP.NET MVC:

$.ajax({
   url: '@(Url.Action("GetUserName"))',
   type: 'POST',

aspx ビューエンジンの場合:

$.ajax({
    url: '<%: Url.Action("GetUserName") %>',
    type: 'POST'
于 2012-07-23T06:07:03.297 に答える