WebAPIが使用するデフォルトRouteConfigurationの代わりにAttributeRoutingを使用するときに、デフォルトコントローラを使用する方法を設定します。私は上記のセクションをコメントする場合AttributeRoutingを使用してWebAPIのデフォルトコントローラ/アクションルートを指定します。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.MapRoute(
// name: "Default",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//);
}
}
をAttribteRouting使用してWEBAPIアプリを実行しようとすると、これは冗長であるため、 すなわちコメントコードセクションを取り除く、デフォルトのホームコントローラが存在しないので、私は次のエラーを取得します/アクション定義。 HTTPエラー403.14 - 禁止 Webサーバーは、このディレクトリの内容を一覧表示しないように構成されています。
ホームコントローラ/アクションの属性ルーティングを使用してルートを指定するにはどうすればよいですか?
EDIT:コードサンプル:
//[RoutePrefix("")]
public class HomeController : Controller
{
[GET("")]
public ActionResult Index()
{
return View();
}
}
これは「」としてURLテンプレートをコレクションにルートを追加し、デフォルトにコントローラとアクションのために:
public class HomeController : Controller
{
[GET("")]
public ActionResult Index()
{
return View();
}
public ActionResult Help()
{
var explorer = GlobalConfiguration.Configuration.Services.GetApiExplorer();
return View(new ApiModel(explorer));
}
}
あなたはAttributeRoutingを使用していると書いているので、AttributeRouting属性でマークされたコントローラーの動作を示すコードサンプルを提供してくださいか? –
@Pete:投稿を更新しましたコードサンプルを含める –