【发布时间】:2012-01-27 02:28:43
【问题描述】:
我有一个多步骤设置过程,我希望仅在相关的情况下传递附加到 URL 的查询字符串参数。
http://localhost:6618/Account/Profile?wizard=true&cats=dogs
@using( Html.BeginForm() )
效果很好。它产生了:<form action="/Account/Profile?setup=true&amp;cats=dogs" method="post"> 即它传递到 POST 操作中的任何原始查询字符串参数,然后在该控制器操作中,我可以选择哪些与传递到下一步相关,或者需要添加,通过添加到RouteValues 和 RedirectToResult。
但是,我需要为我的表单分配一个类以进行样式设置。
我试过了:
@using( Html.BeginForm( "Profile", "Account", args, FormMethod.Post, new { @class = "mainForm" } ) )
产生:
<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 由过滤器生成,是一个 RouteValueDictionary)。规范 http://msdn.microsoft.com/en-us/library/dd505151.aspx 表明您可以使用 System.Web.Routing.RouteValueDictionary 传递参数。
我想要的是<form action="/Account/Profile?setup=true&amp;cats=dogs" class="mainForm" method="post">
我应该提一下,我不想做类似传递 new {key = value} 之类的事情,因为有相当多的逻辑可以确定我将传递到下一步的内容。
有什么建议可以在这里做什么吗?
我被这个看似简单的任务所困扰,并且肯定错过了一些非常明显的东西。
【问题讨论】:
-
也许其他帖子中的答案可能会有所帮助? stackoverflow.com/questions/1219223/…