1

我有一個Web API項目作爲我的解決方案(也包含一個MVC4項目)的一部分,並在Api項目中我試圖將表單發佈到值控制器Post方法(從視圖也在Api項目中)。在WebApi中的Html.BeginForm - 路由

使用Html.BeginForm()Html.BeginForm("Post", "Values")職位,以/Values/Post但我需要它去/api/Values/Post

任何想法,這超載或設置我需要發佈到正確的位置?

我可以從小提琴手(例如localhost/api/values)中擊中所有的動作方法。

回答

2

API控制器使用到默認的不同路由。它應該從JS(AJAX)而不是真正的表單文章中消耗,因此在HtmlHelpers中沒有明顯的支持。嘗試:

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

這會誘使它認爲「值」是動作,「api」是控制器。 「發佈」是從http方法推斷的。

+0

感謝flem的作品:)我可以重新編寫Ajax中的形式,如果這是它應該做的事 –

+0

@Kiran Challa的答案是正確的答案 –

6

您需要使用BeginRouteForm作爲鏈接生成到Web API路由始終取決於路由名稱。還請確保提供如下路線值httproute

@using (Html.BeginRouteForm("DefaultApi", new { controller="Values", httproute="true" }))