使用字符串参数 .NET 核心从路由中排除控制器
Exclude controller from route with string param .NET core
我想要一个看起来像这样的端点:localhost:5000/abc123
这基本上是为了复制 tinyurl 的功能。
控制器
[HttpGet("/{myString}")]
public async Task<IActionResult> Get(string myString)
{}
这有效,但现在所有文件都通过此控制器传输,例如:localhost:5000/runtime.js 等
是否可以只对某些字符串执行此操作?
使用 Route constraint 过滤 myString
的值
例如,如果文件名是一个包含点的字符串 .
在您的情况下是一个有效的建议,您可以使用以下 regex
接受字母数字字符串
[HttpGet("/{myString::regex(^\w+$)}")]
我想要一个看起来像这样的端点:localhost:5000/abc123
这基本上是为了复制 tinyurl 的功能。
控制器
[HttpGet("/{myString}")]
public async Task<IActionResult> Get(string myString)
{}
这有效,但现在所有文件都通过此控制器传输,例如:localhost:5000/runtime.js 等
是否可以只对某些字符串执行此操作?
使用 Route constraint 过滤 myString
例如,如果文件名是一个包含点的字符串 .
在您的情况下是一个有效的建议,您可以使用以下 regex
接受字母数字字符串
[HttpGet("/{myString::regex(^\w+$)}")]