1

これが私のURLならhttp://localhost:55070/Server/1-Server

そのページのリンクは

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

このようにURLを変更するとhttp://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 に答える