【发布时间】:2015-02-12 02:23:49
【问题描述】:
我的页面上有三组单选按钮,我想用一个按钮提交它们的每一个值。
<table>
<tr>
<td>
@Html.RadioButton("rating1", "yes", true) Yes
@Html.RadioButton("rating1", "no", false) No
@Html.RadioButton("rating1", "maybe", false) Maybe
</td>
</tr>
<tr>
<td>
@Html.RadioButton("rating2", "yes", true) Yes
@Html.RadioButton("rating2", "no", false) No
@Html.RadioButton("rating2", "maybe", false) Maybe
</td>
</tr>
<tr>
<td>
@Html.RadioButton("rating3", "yes", true) Yes
@Html.RadioButton("rating3", "no", false) No
@Html.RadioButton("rating3", "maybe", false) Maybe
</td>
</tr>
</table>
我想将字典作为参数发送给控制器操作,以便检索每个评分的值。
控制器如下所示:
public ActionResult Rate(Guid uniqueId, Dictionary<Guid, string> ratings)
{
[...]
}
我试过了:
<input type="submit" value="Send Ratings" onclick="@Url.Action("Rate", "Controller", new {new Dictionary<string,string> {{"rating1", "yes"}, {"rating2", "no"}, {"rating3", "maybe"}})"></input>
但不允许像这样将字典作为 RouteValue 传递。
如何通过一个按钮 /submit 将所有 3 个单选按钮 [name,value] 对发送到操作?另外,这三个组应该采用相同的形式还是单独的形式?
我愿意使用 javascript,但更喜欢使用 Razor HTML 助手。
谢谢
【问题讨论】:
-
首先,Razor 代码在发送到视图之前在服务器上进行解析,因此
@Url.Action在任何客户端更改之前呈现一个值。其次,您不能将字典传递给 GET 方法(至少不是那样 - 它需要类似于 this answer 中的内容)。但实际上,您为什么不只是发布表单并绑定到模型?
标签: javascript c# html asp.net asp.net-mvc