c# - 将值发布到 webapi Controller

标签 c# asp.net asp.net-web-api2

这是我的 WebAPI Controller 和 html 表单。通过 myValue 始终为 null 将请求正确路由到 Controller 中的方法。我认为这是发布从某些教程中获取它的有效方法。

Controller :

[Route("add")]
public string Post([FromBody]string  myValue)
{
    return string.Format("HAIAA: [{0}]" , myValue);
}

查看:

<form id="formOne" method="post" action="ninja/add">
    <input type="text" name="myValue" /> 
    <input type="submit" value="submit" />
</form>

最佳答案

您不能使用 HTML 表单将简单类型参数发布到 Web API 操作。使用包含您的参数的复杂类型:

public class MyFormData {
    public string myValue { get; set; }
}

更改您的 Controller 签名:

[Route("add")]
public string Post([FromBody]MyFormData data)
{
    return string.Format("HAIAA: [{0}]" , data.myValue);
}

或者使用 AJAX 将单个值发布到您的操作:

$('#formOne').submit(function () {
    $.post('ninja/add', { "": $('input[name=myValue]').val() })
        .success(function () {
            //do something
        })
        .error(function () {
            //show error
        });
    return false;
});

关于c# - 将值发布到 webapi Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36921339/

相关文章:

c# - 与 C# 泛型的协变

C# - 使用数据库中的数据填充列表

.net - ASP.NET Web API IExceptionLogger 调用两次

c# - 在 C# 中将 var 作为方法参数传递

c# - ASP.NET 2.0 中的静态类变量行为?

c# - C#中的整数溢出左​​移

asp.net - 如何为 EF6 命名多对多表?是否需要为此添加特殊映射?

c# - 从 IIS7.5 获取登录用户

c# - OData 路径模板不是有效的 OData 路径模板

c# - 如何实例化 ODataQueryOptions