[解決済み] ASP.NET Web API Urlを作成するには?
2022-09-05 23:31:13
質問
ASP.NET MVCにおいて
@Url.Action
をアクションのために使用します。のようなものはありますか?
@Url.Api
のように、/api/controllerにルーティングされるようなものはありますか?
どのように解決するのですか?
この ApiController というプロパティがあり URL というプロパティがあり、その型は System.Web.Http.Routing.UrlHelper を使用します。 というタイプで、APIコントローラ用のurlを作成することができます。
例を示します。
public class ValuesController : ApiController
{
// GET /api/values
public IEnumerable<string> Get()
{
// returns /api/values/123
string url = Url.Route("DefaultApi", new { controller = "values", id = "123" });
return new string[] { "value1", "value2" };
}
// GET /api/values/5
public string Get(int id)
{
return "value";
}
...
}
このUrlHelperは、ビューにも標準のコントローラにも存在しません。
UPDATEしました。
また、ApiControllerの外でルーティングを行うには、以下のようにすればよいでしょう。
public class HomeController : Controller
{
public ActionResult Index()
{
string url = Url.RouteUrl(
"DefaultApi",
new { httproute = "", controller = "values", id = "123" }
);
return View();
}
}
またはビューの内部で
<script type="text/javascript">
var url = '@Url.RouteUrl("DefaultApi", new { httproute = "", controller = "values", id = "123" })';
$.ajax({
url: url,
type: 'GET',
success: function(result) {
// ...
}
});
</script>
注目すべきは
httproute = ""
のルート・トークンに注目してください。これは重要です。
明らかに、これはあなたのApiルートが以下のように呼ばれることを想定しています。
DefaultApi
の RegisterRoutes メソッドで
Global.asax
:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
関連
-
[解決済み] MVC-3から4へ変換されたアプリでSystem.Web.Optimizationへの参照を追加する方法
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] ASP.NET MVCにおけるApiControllerとControllerの相違点
-
[解決済み] 既存のASP.NET MVC 4 WebアプリケーションのプロジェクトにWeb APIを追加するにはどうすればよいですか?
-
[解決済み] Web API メソッドに json の POST データをオブジェクトとして渡すにはどうすればよいですか?
-
[解決済み】ASP.NET Web APIのJWT認証について
-
[解決済み】Microsoft Web API: Server.MapPathはどうやるんですか?
-
[解決済み】@Scripts.Render("~/bundles/jquery")を使用する理由)
-
[解決済み] ASP.NET Web APIからHTMLを返す
-
[解決済み] 偽造防止トークンはユーザー""のためのものですが、現在のユーザーは "username "です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アンチフォージェリーの必須項目「__RequestVerificationToken」が存在しない ユーザー登録時のエラーについて
-
[解決済み] MVC-3から4へ変換されたアプリでSystem.Web.Optimizationへの参照を追加する方法
-
[解決済み】@Scripts.Render("~/bundles/jquery")を使用する理由)
-
[解決済み] ASP.NET 4.5がWebサーバーに登録されていない
-
[解決済み] ASP.NET Web API - PUT & DELETE 動詞が許可されない - IIS 8
-
[解決済み] 全ページ共通のデータをレイアウトに渡す
-
[解決済み] 偽造防止トークンはユーザー""のためのものですが、現在のユーザーは "username "です。
-
[解決済み] ASP.NET MVC 4 Custom Authorize Attribute with Permission Codes (ロールを使用しない)
-
[解決済み] ASP.NET MVC 4のデバッグモードでバンドルとミニフィケーションを有効にする