URL-Parameter-Codierung in MVC .NET

Ich habe einen controller in einer MVC-4 .NET-Anwendung, erhält einen string als parameter aus einer URL. Das geht aus einer aspx-Seite weitergeleitet, um den controller in Route.config.

Wenn ich senden Sie diese als Wert für den parameter in der client: fwdgerhb+bhrth+ftrgbhrt

Bekomme ich folgenden Wert an den server: fwdgerhb bhrth ftrgbhrt

Den server besteht in der Auswertung der URL-parameter-Wert als eine codierte URL und ersetzt + durch . Aber es wurde nicht URL-kodiert. Dies wird auftreten, für die anderen Kombinationen von Sonderzeichen, wenn Sie in der parameter-Wert.

Gibt es eine config-parameter im IIS-Server zu konfigurieren, die der server nicht versuchen, die URL-decode diesen Wert?

Beispiel Anfrage:

mypage.aspx?value=cat+dog    (NOT ENCODED)

Route Config

static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRouteLowercase(
        name: "MyRouter",
        url: "mypage.aspx",
        defaults: new { controller = "My", action = "DoLog" }
    );
}

Controller:

public class MyController : Controller
{
    [AllowAnonymous]
    public ActionResult DoLog(string value)
    {
        //Here value has "cat dog"
    }
}
Ihr controller ist geschrieben in VB.Net oder C#? Kannst du den code bitte?
Ist C#. Als ich es gepostet, aber ich denke, es spielt keine Rolle, es ist kein code Problem, ich habe zum senden der parameter ohne codieren, also brauche ich nur, wie soll der server wissen, dass die URL ohne Kodierung.
Was ist Ihre Anforderung? Ist es, um die codierten parameter e ist.g: fwdgerhb+bhrth+ftrgbhr in dem Fall, warum Sie nicht UrlEncode es selbst?
Weil ich'have verteilte alten code ohne Codierung dieser Wert, und der controller ist kompatibel zu sein mit ihm
so was ist stoppen Sie die Kodierung, wenn es trifft den controller unter der Annahme, dass das, was Sie tun möchten (Sie haben nicht geklärt)?

InformationsquelleAutor dhalfageme | 2014-10-03

Schreibe einen Kommentar