我有一個多步驟的設置過程,我想只在URL相關的時候將查詢字符串參數傳遞給URL。MVC3 Html.BeginForm - 傳遞參數作爲RouteValueDictionary失敗
http://localhost:6618/Account/Profile?wizard=true&cats=dogs
@using(Html.BeginForm())
偉大的工作。它產生了:<form action="/Account/Profile?setup=true&cats=dogs" method="post">
即它將任何原始查詢字符串參數傳遞給POST操作,然後在該控制器操作中,我可以通過添加RouteValues來選擇哪些相關的傳遞給我的下一步,或者需要添加一個RedirectToResult。
但是,我需要爲我的表單分配一個類用於樣式目的。
我嘗試:
@using(Html.BeginForm("Profile", "Account", args, FormMethod.Post, new { @class = "mainForm" }))
其產生:
<form action="/Account/Profile?Count=1&Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D" class="mainForm" method="post">
(args
是由過濾器產生的,並且是一個RouteValueDictionary)。規範http://msdn.microsoft.com/en-us/library/dd505151.aspx表示您可以使用System.Web.Routing.RouteValueDictionary傳遞參數。
我要的是<form action="/Account/Profile?setup=true&cats=dogs" class="mainForm" method="post">
我要提到我寧願不要做類似傳入new {key = value}
代替,因爲有相當多的邏輯來決定什麼,我會沿着下一步路過。
關於在這裏做什麼的任何建議?
我受到這個看似簡單的任務的阻礙,我肯定錯過了一些非常明顯的東西。
也許在這個其他職位的答案可能有點幫助? http://stackoverflow.com/questions/1219223/asp-net-mvc-getting-html-beginform-to-remember-querystring-params-when-submi – summea 2012-01-27 03:46:49