使用XMLHttpRequest通过参数将数据发布回Web服务器 - c#

下面的代码可以找到是否从PostUser方法中删除字符串参数。
但是,当我添加blob时,它失败并显示404。我在做什么错?

  控制者

public class LongPollController : ApiController
{
    public User PostUser(string blob)
    {
        var user = new User
        {
            Name = "John Smith",
            Age = 20,
        };

        return user;
    }
}

  cshtml

<div id="message">Waiting....</div>

@section scripts {
<script>
    var data = new Object();
    data.blob = 'Hello World';

    var request = new XMLHttpRequest();
    request.onreadystatechange = function () {
        if (request.readyState == 4 && request.status == 200) {
            handleUser(JSON.parse(request.responseText));
        }
    };
    request.open("POST", "api/longpoll/user");
    request.setRequestHeader("Accept", "application/json");
    request.setRequestHeader('Content-Type', 'application/json');
    request.send(JSON.stringify(data));

    function handleUser(user) {
        var msg = document.getElementById('message');
        msg.innerHTML = 'Name: ' + user.Name + '<br />' +
            'Age: ' + user.Age + '<br />'
    }

</script>

将我的数据添加到request.send()以便WebApi接收它们的正确方法是什么?

参考方案

Web api与asp.net mvc控制器有所不同,并且Web api默认映射器也有所不同。
1.创建C#类以保存对Web API的输入

public class JsData{
public string Blob{get;set;}
}

2.改变

public User PostUser(string blob)

public User PostUser(JsData input) 

在这种情况下,它也可以运行,但是随后您需要修改web.api的路由

asp.net使用客户端验证而不发布到服务器 - c#

我有一个很长的表格,分为几个部分。我想利用内置的ASP.NET验证控件而不在提交表单之前将其回发到服务器。为了提供更多的上下文,让我解释一下我的想法。该表格分为几部分,每个部分都有一个“下一步”按钮。单击“下一步”按钮时,将使用ASP.NET包含的客户端代码来验证该部分。如果该部分有效,则jquery方法将隐藏该部分并显示下一个。当用户到达表单的最后部分时,…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …

ASP.NET持久缓存(“延迟加载”样式吗?) - c#

我在使缓存按我想要的方式工作时遇到了麻烦。问题:检索请求的数据的过程非常耗时。如果使用标准的ASP.NET缓存,则某些用户将承担检索数据的“重任”。这是不可接受的。解决方案?:数据是否为100%当前并不重要。我想提供旧的无效数据,同时在另一个线程中更新缓存的数据,使新数据可用于将来的请求。我认为,数据需要以某种方式持久化,以便能够在应用程序重新启动后为第一个…

单击选项卡链接时,请专注于每个引导选项卡中的First asp:textbox - javascript

我是开发的新手,并开始开发简单的asp.net应用程序。我正在使用每个都有一些asp标签和文本框的bootstrap选项卡。单击该选项卡时,我要重点关注选项卡内容中的第一个文本框。我搜索了各种答案,但都是针对输入字段的(exp:输入type =“ text”)。找不到适用于ASP文本框的任何内容。任何帮助将不胜感激。谢谢 javascript参考方案 ASP…