我正在尝试创建一个使用部分URL和表单发布值的MVC API接口。我真的需要在url中有一个值/ varible,它将充当变量,我将使用{code}变量做一些魔术。
表格行动:
/ api / ordermanager / orderretrival / 89-78 /(模式:api / {controller} / {action} / {code} /
<form action="/api/ordermanager/orderretrival/89-78/" method="post" enctype="application/x-www-form-urlencoded" >
<input type="hidden" name="function" id="function" value="sendversion" />
<input type="hidden" name="omversion" id="omversion" value="7.004" />
This will get the version number for you.
<input type="submit" value="Get Version"/>
</form>
我创建了这个MapHttpRoute
config.Routes.MapHttpRoute(
name: "OrderManager",
routeTemplate: "api/{controller}/{action}/{code}",
defaults: new { code = RouteParameter.Optional }
);
我创建了这个动作
[HttpPost]
[ActionName("OrderRetrival")]
public string OrderRetrieval(string code, NameValueCollection formData)
{
return formData["omversion"].ToString() ;
}
但是formData是空白的(我希望有更多解释一下东西如何进入参数)。
答案 0 :(得分:0)
不确定如何使用客户端代码中的帖子,但假设您要发布第二个参数,这可能会有所帮助:
public string OrderRetrieval(string code, [FromBody] NameValueCollection formData)
请注意FromBody
属性