[英]ASP.NET MVC route with .asp extension
編輯:“重復”不起作用 - 不知道為什么。
我需要能夠支持如下所示的 ASP.NET WebApi (v5.2.3.0) 路由:
https://example.com/orders/orders.asp
這是讓第 3 方設備能夠與我的系統進行交互。 我試過像這樣弄亂 RouteConfig:
routes.MapHttpRoute(
name: "Orders",
routeTemplate: "api/orders.asp",
defaults: new { controller = "OrderConfirm", action = "Get", id = RouteParameter.Optional }
);
但我總是收到 404 錯誤。 我弄亂了“路線”裝飾,如下所示:
[Route("api/orders.asp")]
控制器代碼:
public class OrdersConfirmController : ApiController
{
[HttpGet]
public HttpResponseMessage Get()
{
string orderContent = "blah, blah, blah";
var response = Request.CreateResponse(HttpStatusCode.OK, string.Empty);
response.Content = new StringContent(orderContent, Encoding.UTF8, "text/plain");
return response;
}
}
但是還是404錯誤。
想法?
在路由表頂部添加一條新路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "Orders",
routeTemplate: "{controller}/{action}.asp"
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
到OrdersConfirmController
添加屬性:
[RoutePrefix("Orders")]
public class OrdersConfirmController : ApiController
和行動
[Route("orders.asp")]
[HttpGet]
public HttpResponseMessage Get()
同樣要允許 URL 中的點,您需要將其添加到 web.config
<system.webserver>
<modules runAllManagedModulesForAllRequests="true">
現在您可以通過http://example.com/Orders/orders.asp
訪問資源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.