如何创建带有两个参数的MVC API操作

时间:2013-11-19 01:45:40

标签: api asp.net-mvc-4

我正在尝试创建一个使用部分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是空白的(我希望有更多解释一下东西如何进入参数)。

1 个答案:

答案 0 :(得分:0)

不确定如何使用客户端代码中的帖子,但假设您要发布第二个参数,这可能会有所帮助:

public string OrderRetrieval(string code, [FromBody] NameValueCollection formData)

请注意FromBody属性