简单发布到Web Api

我正在尝试获取发布请求以使用网络api。以下是我的api控制器。


public class WebsController : ApiController

{

    [HttpPost]

    public void PostOne(string id)

    {

    }


    [HttpPost]

    public void PostTwo(Temp id)

    {

    }

}

我已经更改了webapi路由,以考虑到该操作。Temp模型看起来像这样。


public class Temp

{

    public string Id { get; set; }

}

我的观点看起来像这样


@using (Ajax.BeginForm(new AjaxOptions

{

    Url = "/api/webs/postone",

    HttpMethod = "post"

}))

{

    <input name="id" id="id" value="2" />

    <input type="submit" value="submit" />

}

除非我将[FromBody]属性放在这样的参数前面,否则以上代码对postone完全不起作用。


[HttpPost]

public void PostOne([FromBody]string id)

{

}

然后执行操作,但ID仍为null。它不会填充文本框中的值。


但是,如果我改变Url了的Ajax.BeginForm要posttwo内搭模型Temp,它很好地工作和Id领域在文本框中得到应有的价值。


谁能解释一下发生这种情况的原因,以及如何将简单的值发布到网络api操作中?我的意思是,为什么它可以绑定复杂类型而不绑定简单类型。


幕布斯6054654
浏览 489回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP