У меня есть следующие настройки в WebApiConfig
configuration.Routes.MapHttpRoute(
name: "ConfirmEmailRoute",
routeTemplate: "api/account/ConfirmEmail/{userId=userId}/{code=code}",
defaults: new { userId = RouteParameter.Optional, code = RouteParameter.Optional }
);
И это действие в контроллере
[RoutePrefix("api/account")]
public class AccountController : BaseApiController
{
[AllowAnonymous]
[HttpGet]
[Route("ConfirmEmail/{userId=userId}/{code=code}", Name = "ConfirmEmailRoute")]
public async Task<IHttpActionResult> ConfirmEmail(string userId = "", string code = "")
{
if (string.IsNullOrWhiteSpace(userId) || string.IsNullOrWhiteSpace(code))
{
ModelState.AddModelError("", "User Id and Code are required");
return BadRequest(ModelState);
}
var result = await this.UserManager.ConfirmEmailAsync(userId, code);
if (result.Succeeded)
{
return Ok("Email has been successfully confirmed");
}
else
{
return GetErrorResult(result);
}
}
}
И я использую следующее для генерации его URL
Url.Link("ConfirmEmailRoute", new { userId = user.Id, code = code })
Но это всегда возвращает ноль.
Я также пытался добавить контроллер и Action, например:
Url.Link("ConfirmEmailRoute", new { userId = user.Id, code = code, controller = "Account", Action = "ConfirmEmail" })
Не работает либо
имена параметров одинаковы, я не понимаю, почему это не работает!