Based on How to create ASP.NET Web API Url?
Neither of these plus a few more combinations of them I've tried are working
<li><a href="@Url.RouteUrl("DefaultApi",new {area=string.Empty,httproute = string.Empty, controller = "corpuserrequest", action="Get"})">CorpUser</a></li>
<li><a href="@Url.Action("Get","CorpUserRequest",new {area=string.Empty,httproute ="", controller = "CorpUserRequest", action="Get"})">CorpUser</a></li>
Here's my api config route table:
//https://stackoverflow.com/questions/11407267/multiple-httppost-method-in-mvc4-web-api-controller
config.Routes.MapHttpRoute(
name: "ApiReq",
routeTemplate: "webapi/{controller}/{action}",
defaults: null,
constraints: new { action = "Req" }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new
{
id = @"^\d*$",// Only integers
action = "^(?![rR]eq)$" //anything except req or Req
}
);
Why isn't the routing working? The RouteUrl returns empty string or null, the Action returns
<a href="http://localhost:11601/CorpUserRequest/Get">
instead of what the actual url should be http://localhost:11601/api/CorpUserRequest
First of all, create MVC controller class called StudentController in the Controllers folder as shown below. Right click on the Controllers folder > Add.. > select Controller.. Step 2: We need to access Web API in the Index() action method using HttpClient as shown below.
You could use either of the following to generate links to Web API:
@Url.HttpRouteUrl("DefaultApi", new {controller = "corpuserrequest"})
@Url.RouteUrl("DefaultApi", new { httproute = true, controller = "corpuserrequest"})
Usually you would use option 1.
, but sometimes you might need to use 2.
like in the following post (this post doesn't necessarily use RouteUrl
, but the idea is that in places where you do not have a convenient extension like HttpRouteUrl
, in this case Html.BeginForm
, you can use httproute=true
to indicate that you are indeed trying to generate a url to a Web API route)
ASP.Net WebApi: Invalid URL generated in BeginForm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With