第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

我需要添加什么路由來映射到 API 控制器?

我需要添加什么路由來映射到 API 控制器?

PHP
SMILET 2024-01-20 16:06:48
我已將 ApiController 添加到我的 asp.net core 2.2 應(yīng)用程序中,并且來自 UI 的異步調(diào)用不匹配。這是我在 Startup.cs 中的路線。app.UseMvc(config =>{    config.MapRoute(        "Api",        "api/{controller}/{action}/{id?}"    );    config.MapRoute(        "Default",         "{controller=App}/{action=Index}/{id?}"    );});下面是向 API 控制器發(fā)出各種 GET 請(qǐng)求的 JavaScript 函數(shù)之一。function clearAllFilters() {  $.get({    url: "/api/GridFilter/ClearAllFilters",    contentType: "application/json; charset=utf-8",    dataType: "json",    success: function () {        console.log('filters cleared');    }  });}這是 API 控制器:[Route("api/[controller]")][ApiController]public class GridFilterController : ControllerBase{    private static readonly string[] FilterFields = {        // Bunch of strings, omitted for brevity    };    [HttpGet]    public IActionResult ClearAllFilters()    {        foreach (string column in FilterFields)        {            if (HttpContext.Session.TryGetValue(column, out byte[] savedJson))            {                HttpContext.Session.Remove(column);            }        }        return Ok(true);    }為什么asp.net不匹配這個(gè)?我的網(wǎng)址是 /api/controller/action ,它似乎與啟動(dòng)時(shí)映射的第一個(gè)路由匹配。
查看完整描述

1 回答

?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

您正在混合傳統(tǒng)路由和屬性路由:

操作要么是傳統(tǒng)路由,要么是屬性路由。將路由放置在控制器或操作上使其具有路由屬性。定義屬性路由的操作無法通過常規(guī)路由到達(dá),反之亦然??刂破魃系?strong>任何路由屬性都會(huì)使控制器屬性中的所有操作都路由。

示例中的以下調(diào)用配置傳統(tǒng)路由模板:

config.MapRoute("Api","api/{controller}/{action}/{id?}");

但是,您已GridFilterController通過使用路由屬性 (?[Route(...)]) 配置為使用屬性路由:

[Route("api/[controller]")]
[ApiController]
public?class?GridFilterController?:?ControllerBase

要從訪問ClearAllFilters操作/api/GridFilter/ClearAllFilters,您有兩個(gè)常規(guī)選項(xiàng):

  1. 將屬性路由模板更改為:

    [Route("api/[controller]/[action]")]

    這意味著操作的名稱將作為路由的一部分包含在內(nèi),這與您設(shè)置的傳統(tǒng)路由模板類似。

  2. 完全刪除該[Route(...)]屬性。但是,這并不理想,因?yàn)槟€必須刪除該[ApiController]屬性,因?yàn)檫@需要屬性路由。


查看完整回答
反對(duì) 回復(fù) 2024-01-20
  • 1 回答
  • 0 關(guān)注
  • 131 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)