1

如果这是我的网址http://localhost:55070/Server/1-Server

该页面中的链接将变为

http://localhost:55070/Server/2-Instance_12

如果我像这样更改 URLhttp://localhost:55070/Server/1-Server/

链接将是这样的。http://localhost:55070/Server/1-Server/1-Instance_11

我总是想要第二类型(http://localhost:55070/Server/1-Server/1-Instance_11/)。如果用户像这样输入 URL http://localhost:55070/Server/1-Server,可能会导致一些问题。

如果这是 URL http://localhost:55070/Server/1-Server,我如何将 / 附加到这个http://localhost:55070/Server/1-Server/. 所以下一个视图中的链接也附加到它上面。

用户可以删除“/”,然后我还需要添加“/”。

这是用于创建 URL 的 Razor。

4

1 回答 1

2

您可以调整此解决方案ASP.NET MVC 中的小写 URL 以在 url 不以 / 结尾时重定向用户

或者像这样把它放在一个 HttpModule 中:

public class UrlMessingModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.BeginRequest += Application_BeginRequest;
    }

    public void Dispose() { }

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        var application = (HttpApplication) sender;
        var request = application.Request;
        var response = application.Response;

        var url = request.Url.AbsolutePath;

        if (url.Length > 1 && !url.EndsWith("/"))
        {
            response.Clear();
            response.Status = "301 Moved Permanently";
            response.StatusCode = (int)HttpStatusCode.MovedPermanently;
            response.AddHeader("Location", url + "/");
            response.End();
        }

    }
}
于 2012-07-27T11:45:02.947 回答