Binding POST中的Web API模型绑定问题
我对Web API还不熟悉,这让我很困惑 模型如下:Binding POST中的Web API模型绑定问题,binding,model,asp.net-web-api,Binding,Model,Asp.net Web Api,我对Web API还不熟悉,这让我很困惑 模型如下: public class Model { public string firstname { get; set; } public string lastname { get; set; } } 这是控制器: public class TestController : ApiController { [HttpPost] public void Test(Model request) { } }
public class Model
{
public string firstname { get; set; }
public string lastname { get; set; }
}
这是控制器:
public class TestController : ApiController
{
[HttpPost]
public void Test(Model request)
{
}
}
<html>
<head>
<title></title>
</head>
<body>
<form action="/Test" method="post">
<input type="text" name="firstname" value="test1" />
<input type="text" name="lastname" value="test2" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
我正在使用html表单发布,它将命中控制器:
public class TestController : ApiController
{
[HttpPost]
public void Test(Model request)
{
}
}
<html>
<head>
<title></title>
</head>
<body>
<form action="/Test" method="post">
<input type="text" name="firstname" value="test1" />
<input type="text" name="lastname" value="test2" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
但是,当我调试到控制器中时,模型对象的firstname=null
和lastname
显示正确
我做错了什么?所以这是我见过的最奇怪的事情。将此用作您的视图:
<html>
<head>
<title></title>
</head>
<body>
<form action="/Home" method="post">
@*<input type="text" name="firstname" value="test1" />*@
<input type="text" name="firstname" value="test1" />
<input type="text" name="lastname" value="test2" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
@**@
编辑:
不确定您是否这样做了,但基本上您的代码是
name=“;firstname”
。不确定您是否想在其中添加它来干扰人们,但您在其中有一个特殊字符如果这是直接复制和粘贴,请尝试将“firstname”
替换为“firstname”
我会尝试两件事:在测试方法声明中的模型之前添加[FromBody],并检查测试方法中的模型状态错误()假设上述操作不起作用,我还将尝试在Chrome中启动一个直接的jQuery.ajax()
请求,看看控制台中会发生什么。类似于:$.ajax('/Test',{type:'POST',data:{firstname:'test1',lastname:'test2'},success:function(data){console.log(data);}}})
您可以使用fiddler2post-composer来测试WEB Api功能。如果这样做很好,请查看您的网页。说真的,您在输入行中使用了什么魔法?