为什么我不能用ajax向控制器发送参数?

时间:2016-10-24 12:18:01

标签: asp.net-mvc

我在asp.net ajax的视图页面中写了这个mvc

<script type="text/javascript">
        $(document).ready(function () {

            $("#Shareitem").click(function (e) {
                var serviceURL = '/Register/FirstAjax';
                $.ajax({
                    type: "POST",
                    url: serviceURL,
                    data: '123',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: successFunc,
                    error: errorFunc
                });
                function successFunc(data, status) {
                    alert(data);
                }
                function errorFunc() {
                    alert('error');
                }
            });
        });
    </script>


这是我在控制器中的动作方法:

[HttpPost]
        public ActionResult FirstAjax(string value)
        {
            string test = value.Trim();
            return Json("PROF.VALI", JsonRequestBehavior.AllowGet);
        }


但在这一行:

string test = value.Trim();


得到这个错误:

An exception of type 'System.NullReferenceException' occurred in UserRegister.dll but was not handled in user code


我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:1)

您需要以与您发布的方法的参数名称相匹配的格式发送数据。将ajax data选项更改为

data: JSON.stringify({ value: '123' }),

或者,您可以使用

data: { value: '123' },

并删除contentType: "application/json; charset=utf-8",选项,使其使用默认值('application/x-www-form-urlencoded; charset=UTF-8'