我正在嘗試獲取發(fā)布請(qǐng)求以使用網(wǎng)絡(luò)api。以下是我的api控制器。public class WebsController : ApiController{ [HttpPost] public void PostOne(string id) { } [HttpPost] public void PostTwo(Temp id) { }}我已經(jīng)更改了webapi路由,以考慮到該操作。Temp模型看起來像這樣。public class Temp{ public string Id { get; set; }}我的觀點(diǎn)看起來像這樣@using (Ajax.BeginForm(new AjaxOptions{ Url = "/api/webs/postone", HttpMethod = "post"})){ <input name="id" id="id" value="2" /> <input type="submit" value="submit" />}除非我將[FromBody]屬性放在這樣的參數(shù)前面,否則以上代碼對(duì)postone完全不起作用。[HttpPost]public void PostOne([FromBody]string id){}然后執(zhí)行操作,但I(xiàn)D仍為null。它不會(huì)填充文本框中的值。但是,如果我改變Url了的Ajax.BeginForm要posttwo內(nèi)搭模型Temp,它很好地工作和Id領(lǐng)域在文本框中得到應(yīng)有的價(jià)值。誰能解釋一下發(fā)生這種情況的原因,以及如何將簡(jiǎn)單的值發(fā)布到網(wǎng)絡(luò)api操作中?我的意思是,為什么它可以綁定復(fù)雜類型而不綁定簡(jiǎn)單類型。
簡(jiǎn)單發(fā)布到Web Api
幕布斯6054654
2019-11-18 10:54:51