javascript - 使用 jQuery Ajax 将单个参数传递给 WebApi Controller

标签 javascript jquery ajax asp.net-web-api

我试图将单个参数(字符串值)传递给 webapi Controller ,但是它不起作用。参数值到达 Controller 时为“null”。这是我的 WebApi 配置,

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
               name: "DefaultApi",
               routeTemplate: "api/{controller}/{action}"
           );

        }
    }

Controller :

        [HttpPost]
        public HttpResponseMessage GetDataView(string request)
        { 
            try
            {
                var result = DB.GetDataView(request);

                return Request.CreateResponse(HttpStatusCode.OK, result);
            }
            catch (Exception ex)
            {            
                //todo: log exception   
                throw ex;
            }
        }

AJAX

var serverName = 'ds100';
 $.ajax({
        url: 'api/ServerInfo/GetDataView',
        type: 'POST',
        dataType: 'json',
        data: serverName,
        success: function (data, textStatus, xhr) {

        },
        error: function (xhr, textStatus, errorThrown) {

        }

我错过了什么吗?如有任何帮助,我们将不胜感激。

最佳答案

问题似乎出在你的ajax参数上,data参数接收一个对象(json),该对象为你在请求中传递的每个值保存一个属性,我认为你应该使用

 var serverName = 'ds100';
 $.ajax({
    url: 'api/ServerInfo/GetDataView',
    type: 'POST',
    dataType: 'json',
    data: {request: serverName} ,
    success: function (data, textStatus, xhr) {

    },
    error: function (xhr, textStatus, errorThrown) {

    }

这样就可以了

关于javascript - 使用 jQuery Ajax 将单个参数传递给 WebApi Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514898/

相关文章:

javascript - 如果我们在 JavaScript 中填充 fn.bind(),为什么你必须检查 "this"的类型?

javascript - JQuery 隐藏尚未隐藏的父 Div

javascript - 将 jQuery 添加到 Wordpress head

jquery - 使用 .load() 和 fadeIn() 来替换内容

javascript - 转换单位/单位,避免使用大型 if/switch 语句

javascript - 将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP

javascript - 翻转外键关系?

javascript - 为什么单选按钮没有传递 asp 控件的 clientID

javascript - 什么是 Javascript 中 window.open() 的返回类型

ajax - Rails 3.2.2 与 Twitter Bootstrap Tabs Ajax 不工作