我有一个多步骤的设置过程,我想只在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