相关疑难解决方法(0)

string.ToLower()和string.ToLowerInvariant()

有什么区别以及何时使用什么?如果我总是使用ToLower()会有什么风险,如果我总是使用ToLowerInvariant(),风险又是什么?

.net c# string

150
推荐指数
4
解决办法
6万
查看次数

如何在ASP.NET MVC中使用小写路由?

如何在ASP.NET MVC中使用小写,加上下划线?所以我/dinners/details/2打电话DinnersController.Details(2),如果可能的话,/dinners/more_details/2打电话DinnersController.MoreDetails(2)

所有这些仍然使用像这样的模式{controller}/{action}/{id}.

url asp.net-mvc routes case

145
推荐指数
7
解决办法
5万
查看次数

HTTP 301和308状态代码有什么区别?

HTTP 301308状态代码有什么区别?

  • 301 (永久移动):此和所有将来的请求应定向到给定的URI.

  • 308 (永久重定向):应使用另一个URI重复请求和所有将来的请求.

他们似乎很相似.

http http-status-codes http-status-code-301 http-status-code-308

94
推荐指数
1
解决办法
2万
查看次数

如何在ASP.NET Core中强制执行小写路由?

在ASP.NET 4中,这与应用程序routes.LowercaseUrls = true;RegisterRoutes处理程序一样简单.

我无法在ASP.NET Core中找到实现此目的的等价物.我想它会在这里:

app.UseMvc(configureRoutes =>
{
    configureRoutes.MapRoute("Default", "{controller=App}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

configureRoutes看起来没什么可以允许的......除非在某个地方找到一个我在文档中找不到的扩展方法呢?

asp.net-core-mvc asp.net-core

62
推荐指数
5
解决办法
1万
查看次数

在ASP.NET Core中自动生成小写虚线路径

ASP.NET Core 默认使用类似http:// localhost:5000/DashboardSettings/Index的CamelCase-Routes .但我想使用小写路由,这些路由由破折号分隔:http:// localhost:5000/dashboard-settings/index它们更常见且一致,因为我的应用程序扩展了一个运行Wordpress的网站,该网站也有小写网址破折号.

我了解到我可以使用路由选项将URL更改为小写:

services.ConfigureRouting(setupAction => {
    setupAction.LowercaseUrls = true;
});
Run Code Online (Sandbox Code Playgroud)

这有效,但给了我网址没有任何分隔符,如http:// localhost:5000/dashboardsettings/index,这些分隔符很难读.我可以使用路由属性来定义自定义路由

[Route("dashboard-settings")]
class DashboardSettings:Controller {
    public IActionResult Index() {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会导致额外的工作并且容易出错.我更喜欢一个自动解决方案,它搜索大写字符,在它们之前插入一个破折号并使大写字母小写.对于旧的ASP.NET来说,这不是一个大问题,但在ASP.NET Core上,我看不到如何处理这个问题的方向.

这是怎么做到这里的?我需要一些接口,我可以生成url(比如标记帮助器)并用dash-delimiters替换CamelCase.然后我需要另一种接口用于路由,以便将破折号分隔符URL转换回CamelCase,以便与我的控制器/动作名称正确匹配.

url routing asp.net-core-mvc asp.net-core

14
推荐指数
4
解决办法
4536
查看次数

如何在 .NET 6 中强制使用小写路由?

我想在 .NET 6 API 项目中强制执行小写路由。

这是我的Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();
Run Code Online (Sandbox Code Playgroud)

这是我的WeatherForecastController.cs

using Microsoft.AspNetCore.Mvc;

namespace Weather.API.Controllers
{
    [ApiController]
    [Route("weatherforecast")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
        "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", …
Run Code Online (Sandbox Code Playgroud)

.net-6.0

7
推荐指数
1
解决办法
4948
查看次数