C# MVC基本应用程序不工作

C# MVC基本应用程序不工作,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我在网上创作了一把小提琴。如果我输入'Manoj'作为用户名,输入'kumar'作为密码,然后单击登录按钮,那么我会收到一条警告消息'Manoj kumar'。但这并没有发生。我正在向控制器操作方法发送用户名和密码,但在控制器中未收到它们。请告诉我我做错了什么 $('.submit').click(function(){ if($('form').valid()) { $.ajax({

我在网上创作了一把小提琴。如果我输入'Manoj'作为用户名,输入'kumar'作为密码,然后单击登录按钮,那么我会收到一条警告消息'Manoj kumar'。但这并没有发生。我正在向控制器操作方法发送用户名和密码,但在控制器中未收到它们。请告诉我我做错了什么

            $('.submit').click(function(){
                if($('form').valid()) {
                    $.ajax({
                        url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})',
                        data: JSON.stringify({userName: $("#txtUserName").val(), password: $("#txtPassword").val()}),
                            type: 'POST',
                            dataType: 'json',
                            contentType: "application/json; charset=utf-8",
                            success: function(resp) {
                            if(resp != null){

                                if(resp.IsValidUser == true){
                                    alert(resp.FullName);
                                }   
                                else{
                                    alert("Invalid Username or Password");
                                }

                            }

                        },

[HttpPost]
    public ActionResult GetUserInfo(string userName,string password)
    {

        ActionResult result = null;
        bool isValidUser = false;
        string fullName = string.Empty;
        if(userName == "Manoj" && password == "kumar")
        {
            isValidUser = true;
            fullName = userName +' ' + password;
        }
        else    {
            fullName = userName + ' '+password;
        }

        var resultObj = new {IsValidUser = isValidUser , FullName = fullName};

        result = Json(resultObj);

        return result;
    }
请查看下面的链接


您的代码可以简化为:

$.post('@Url.Action("Action", "Controler")',dataToPost).done(function(){
  //success
}).fail(function(){
  //fail
});

去掉
应用程序/json
部分。您可以使用onsubmit事件来代替click事件。

确保引用脚本上有Jquery验证,因为form.valid()将:

<script src="/Scripts/jquery.validate.js"></script>

或者在此处查看CDN:

它返回的是false,这就是为什么它不会继续到控制器

更新

确保将代码放在文档中,并正确设置ajax函数的结束括号或结束括号的格式:

 <script type="text/javascript">

    $(document).ready(fncInitialize);

    function fncInitialize() {
        $('#frmSubmit').click(function() {               
            if ($('form').valid()) {
                $.ajax({
                    url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})',
                    data: JSON.stringify({ userName: $("#txtUserName").val(), password: $("#txtPassword").val() }),
                    type: 'POST',
                    dataType: 'json',
                    contentType: "application/json; charset=utf-8",
                    success: function(resp) {
                        if (resp != null) {

                            if (resp.IsValidUser == true) {
                                alert(resp.FullName);
                            } else {
                                alert("Invalid Username or Password");
                            }
                        }
                    }
                });
            }
        });
    }

</script>

$(文档).ready(fncInitialize);
函数fncInitialize(){
$('#frmSubmit')。单击(函数(){
if($('form').valid(){
$.ajax({
url:'@url.RouteUrl(新的{action=“GetUserInfo”,controller=“Home”}),
数据:JSON.stringify({userName:$(“#txtsername”).val(),password:$(“#txtPassword”).val()}),
键入:“POST”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(resp){
如果(resp!=null){
如果(分别为IsValidUser==真){
警报(分别为全名);
}否则{
警报(“无效用户名或密码”);
}
}
}
});
}
});
}
这是我的输入类型提交的代码:

<input type="submit" value="Create" id="frmSubmit" />


代码不属于这里。使用一个代码标记,看看是的,它是可用的,form.valid()返回true。我已经尝试了您的代码,并且工作正常。你把这个放在文件里了吗?准备好了吗?你的函数格式化正确了吗?请看我的最新答案。