通过邮件从很多单选按钮中获取id和值

时间:2013-06-12 08:40:37

标签: asp.net-mvc razor

在视图中,我有很多RadioButtons,每个ID都是唯一的。当用户在控制器中选择其中一个时,我想采用IDVALUE我如何做到这一点....我尝试使用formCollection,但在这里我只能取值...

@Html.RadioButton("BookType", "1", new { id = "100" })
<br>
Above code generates Below code
<br/>
< input id="100" name="BookType" type="radio" value="1" >

问题是如何通过控件中的'POST'操作获取ID和VALUE。

3 个答案:

答案 0 :(得分:0)

您可以在发布操作中编写代码,如下所示:

var radbtn = Request.From["100"];

答案 1 :(得分:0)

你没有,那不是表单控件的工作方式。

提交表单时,系统会提交namevalue,但checkboxradio输入等情况除外。

仅当checkboxcheckedradio inputcheckedname/value已发布。

你需要重新思考你想要实现的目标。如果你能提供一些你想要达到的信息,我相信我或其他任何人都可以提供进一步的帮助。

答案 2 :(得分:0)

我建议你使用视图模型。请看下面的例子:

namespace MvcApplication1.Controllers {

    public class TheOption {
        public string Id { get; set; }
        public string Value { get; set; }
        public bool? Checked { get; set; }
    }

    public class FooController : Controller {
        //
        // GET: /Foo/

        public ActionResult Index() {
            var options = new List<TheOption> {
                new TheOption {Id = "One", Value = "The One"},
                new TheOption {Id = "Two", Value = "The Two"},
                new TheOption {Id = "Hundred", Value = "The Hundred"},
            };
            return View(options);
        }

        [HttpPost]
        public ActionResult Index(List<TheOption> options) {
            return View(options);
        }

    }
}

现在您需要为TheOption模型创建编辑器模板。只需在〜\ Views \ Shared \文件夹下创建名为 EditorTemplates 的文件夹即可。添加新视图作为编辑器模板。将此编辑器模板命名为与模型名称(TheOption)匹配。

以下是〜\ Views \ Shared \ EditorTemplates \ TheOption.cshtml 的内容:

@model MvcApplication1.Controllers.TheOption
<div>
    @Html.RadioButtonFor(m => m.Checked, true, new { id = Model.Id + "_selected" })
    @Html.RadioButtonFor(m => m.Checked, false, new { id = Model.Id }) @Model.Value

    @Html.HiddenFor(m => m.Id)
    @Html.HiddenFor(m => m.Value)
</div>

现在转到主视图(Index.cshtml)并简单地输入以下代码:

@model System.Collections.Generic.List<MvcApplication1.Controllers.TheOption>
@using (Html.BeginForm()) {
    @Html.EditorFor(m=>m)    
    <button type="submit">Save</button>
}

完成!希望这会有所帮助:)