MVC3, Html.BeginForm - übergeben von Argumenten als RouteValueDictionary ausfällt

Ich habe einen multi-Schritt-setup-Prozess, wo ich gerne weitergeben möchte query-string-Argumente, die an die URL angehängt und nur, wenn Sie relevant sind.

http://localhost:6618/Account/Profile?wizard=true&Katzen=Hunde

@using( Html.BeginForm() )

Super geklappt. Es ergab sich: <form action="/Account/Profile?setup=true&amp;cats=dogs" method="post"> also ging Sie in die POST-Aktion die ursprünglichen query-string-Parameter, und dann in die Controller-Aktion, die ich entscheiden konnte, welche relevante pass auf meinen nächsten Schritt, oder muss hinzufügen, indem Sie auf die RouteValues und ein RedirectToResult.

Allerdings brauche ich zum zuweisen einer Klasse, um meine form für styling Zwecke.

Habe ich versucht:

@using( Html.BeginForm( "Profile", "Account", args, FormMethod.Post, new { @class = "mainForm" } ) )

welche ergibt:

<form action="/Account/Profile?Count=1&amp;Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&amp;Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D" class="mainForm" method="post">

(args wurde erzeugt, indem ein filter, und ist ein RouteValueDictionary). Die Spezifikation http://msdn.microsoft.com/en-us/library/dd505151.aspx zeigt, dass man Argumente übergeben, die mit einem System.Web.Routing.RouteValueDictionary.

Was ich will, ist <form action="/Account/Profile?setup=true&amp;cats=dogs" class="mainForm" method="post">

Sollte ich erwähnen, ich würde es vorziehen, nicht zu tun, so etwas wie die übergabe in new {key = value} statt, da gibt es eine ganze Menge Logik, um zu bestimmen, was ich sein werde vorbei entlang zum nächsten Schritt.

Irgendwelche Vorschläge, was hier zu tun ist?

Ich bin gehemmt, durch diese scheinbar einfache Aufgabe ist, und bin sicher, etwas zu verpassen, schrecklich offensichtlich.

InformationsquelleAutor Erica | 2012-01-27
Schreibe einen Kommentar