4
我有一個表格,我想用比較簡單的代碼來創建:BeginRouteForm不適用於API路由?
@using (Ajax.BeginRouteForm("DefaultApi", new { controller = "persons" }, new AjaxOptions {HttpMethod = "post", OnSuccess = "someSuccess"}))}
{
@Html.TextBoxFor(m => m.Name)
}
我有一個PersonsController,這是一個ApiController,和我有WebApiConfig以下路線:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
但BeginRouteForm調用不返回任何操作。由此產生的HTML:
<form action="" data-ajax="true" data-ajax-method="post" data-ajax-success="someSuccess" id="form0" method="post">
</form>
正如你所看到的,這個動作是空的。它並不是抱怨它找不到路線(如果路線不對),那麼發生了什麼?我甚至嘗試在routeValues對象中提供一個空id,但這也不起作用(儘管它不應該是必需的,因爲id是可選的)。
我在這裏錯過了什麼?您是否可以不通過MapHttpRoute添加路線來使用BeginRouteForm?該行爲與Html.BeginRouteForm和Ajax.BeginRouteForm(因爲它應該是,它們具有相同的基數)相同。很顯然,在這種情況下,我預計這個動作會返回'/ api/persons'。