0

在视图中我有很多,RadioButtons并且 id 对每个都是唯一的。当用户在控制器中选择其中一个时,我想采用ID以及VALUE如何做到这一点....我尝试使用,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。

4

3 回答 3

0

您可以在Post Action中编写代码,如下所示:

var radbtn = Request.From["100"];
于 2013-06-12T07:55:01.837 回答
0

你不知道,这不是表单控件的工作方式。

当您提交表单时,namevalue被提交,除了checkboxradio输入之类的场景。

只有当 a checkboxischecked或 a radio inputischecked时才name/value发布。

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

于 2013-06-12T08:52:21.410 回答
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>
}

完毕!希望这可以帮助 :)

于 2014-04-28T10:49:14.213 回答