繁体   English   中英

使用 jquery 将数据从视图传递到 controller

[英]Passing data from view to controller using jquery

Im trying to pass user input from html to the controller and I am using jquery and ajax.I have followed this tutorial https://www.c-sharpcorner.com/blogs/post-the-data-to-asp-net- mvc-controller-using-jquery-ajax

这是 controller 代码。

 public class JQueryController

    {
        // GET api/<controller>
        public ActionResult Index ()
        {
            return View(); 
        }


     
        [HttpPost]
        public JsonResult AjaxPostCall(Userinfo userdata)
        {
            Userinfo userinfo = new Userinfo
            {
                Name = userdata.Name,
                EmailAdress = userdata.EmailAdress,
                Phone = userdata.Phone

            };

            return JSON(userinfo, JsonRequestBehavior.AllowGet);
        }

这是cshtml文件中的代码

@{
    @Shakesphere.Controller.JQueryController.UserInfo;
    @Model.Shakesphere.ViewModels.UserDataModel


}


<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>

    <script type="text/javascript"
            src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script>
        (function CheckInput() {

            var userInfo = new Object();
            userInfo.Name = $('name').val();
            userInfo.EmailAddress = $('email').val();
            userInfo.Phone = $('phone').val();
            if (UserInfo != null) {

                $.ajax({
                    type: 'POST',
                    url: '/JqueryAjaxCall/AjaxPostCall',
                    data: JSON.stringify(UserInfo),
                    contenttype: "application.json; charset=utf-8",
                    datatype: "json",
                    success: function (response) {
                        if (response != null) {
                            alert("Name:" + response.Name);
                        }

                        else {
                            alert("Something went wrong ")
                        }



                    },

                    failure: function (response) {
                        alert(response.responseText);
                    },
                    error: function (response) {
                        alert(response.responseText);
                    }


                }

                )

            }



        }

    </script>

我得到的错误是该视图和 json 在当前上下文中不存在。 我还收到一个错误,即错误 CS0117 'JQueryController' 不包含 'UserInfo' 的定义。

您的JQueryController class 需要从基础Controller class 继承。 将您的 class 声明更改为:

public class JQueryController : Controller

至于Userinfo问题,我的猜测是您在 class 之上缺少using语句。 查看您的Userinfo ,您会看到如下内容:

namespace Foo.Bar

您需要在JQueryController class 之上添加一些using Foo.Bar的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM