1

我有一个 Web API 项目作为我的解决方案的一部分(也包含一个 MVC4 项目),并且在 Api 项目中我试图将一个表单发布到 Values 控制器 Post 方法(从 Api 项目中的一个视图)。

使用Html.BeginForm()Html.BeginForm("Post", "Values")发布到,/Values/Post但我需要它去/api/Values/Post

知道我需要将哪些重载或设置发布到正确的位置吗?

我可以从提琴手(例如 localhost/api/values)中很好地使用所有操作方法。

4

2 回答 2

6

您需要BeginRouteForm用作 Web API 路由的链接生成始终取决于路由名称。还要确保提供httproute如下调用的路由值。

@using (Html.BeginRouteForm("DefaultApi", new { controller="Values", httproute="true" }))
于 2013-12-03T01:03:52.877 回答
2

API 控制器使用与默认值不同的路由。它应该从 JS(AJAX)而不是真正的表单帖子中使用,因此在 HtmlHelpers 中没有明显的支持。尝试:

Html.BeginForm("values", "api")

这会欺骗它认为“值”是动作,而“api”是控制器。“Post”是从 http 方法推断出来的。

于 2012-12-28T21:29:14.290 回答