如何使用 .html 和 id 强制路由?
How can I force the Route with .html and id?
我想用 .html 和 32 长度的 ID 强制 Route
。
例如,这里是 URL:
https://localhost:44331/Re/test.html?id=12345678901234567890123456789012
我想要URL里面没有id参数或者id的长度不是32,就是returns404状态码。
这是控制器:
namespace V.Controllers
{
[Route("Re/")]
public class ReController : Controller
{
[Route("test.html{id:length(32)}")]
public IActionResult test(string id)
{
return View();
}
}
}
我运行代码后,总是报404状态码。
我的路线有什么问题?
我认为您不能在路由中指定查询字符串参数。尝试验证操作中的 id
,或者如果您可以更改路线,请将其添加为附加路段。
[Route("Re/")]
public class ReController : Controller
{
[Route("test.html")]
public IActionResult test(string id)
{
if (id == null || id.Length != 32)
return NotFound();
return Json(new {id= id});
}
[Route("test2.html/{id:length(32)}")]
public IActionResult test2(string id)
{
return Json(new {id= id});
}
}
我想用 .html 和 32 长度的 ID 强制 Route
。
例如,这里是 URL:
https://localhost:44331/Re/test.html?id=12345678901234567890123456789012
我想要URL里面没有id参数或者id的长度不是32,就是returns404状态码。
这是控制器:
namespace V.Controllers
{
[Route("Re/")]
public class ReController : Controller
{
[Route("test.html{id:length(32)}")]
public IActionResult test(string id)
{
return View();
}
}
}
我运行代码后,总是报404状态码。
我的路线有什么问题?
我认为您不能在路由中指定查询字符串参数。尝试验证操作中的 id
,或者如果您可以更改路线,请将其添加为附加路段。
[Route("Re/")]
public class ReController : Controller
{
[Route("test.html")]
public IActionResult test(string id)
{
if (id == null || id.Length != 32)
return NotFound();
return Json(new {id= id});
}
[Route("test2.html/{id:length(32)}")]
public IActionResult test2(string id)
{
return Json(new {id= id});
}
}