【问题标题】:How to correctly display radiobutton in asp.net mvc 5如何在 asp.net mvc 5 中正确显示单选按钮
【发布时间】:2018-02-02 21:25:58
【问题描述】:

我想知道在 asp.net mvc 5 应用程序中显示组单选按钮的最佳方式是什么。

尝试 1:

    @Html.RadioButton("SearchBy", "Name", true) <text> Name </text>
    @Html.RadioButton("SearchBy", "Location") <text> Location</text>


    [HttpPost]
    public ActionResult Create(CoverLetterViewModel viewModel, string searchBy)
    {//somecode}

尝试 2:

     //prop
       public string SelectedRoleType { get; set; }
     //view
       <label>
            @Html.RadioButtonFor(m => m.SelectedRoleType, "JobSeeker", new { @class = "js-radio", id = "" })
            <span>Job Seeker</span>
        </label>

        <label>
            @Html.RadioButtonFor(m => m.SelectedRoleType, "Referrer", new { @class = "js-radio", id = "" })
            <span>Referrer</span>
        </label>
      //controller action
        [HttpPost]
        public ActionResult Create(CoverLetterViewModel viewModel)
        {//somecode}

尝试 3: 现在假设我有 10 个单选按钮,是否有任何有效的方法来创建单选按钮。我的意思是假设我有一个单选按钮列表,如下所示

public List<SOME RADIBUTTON ITEM> radiobuttonlist {get;set;}

问题:

我们能否以与处理 Dropdown Item 列表相同的方式显示单选按钮。我们能否以某种方式避免在视图文件中硬编码"Referrer" AND "JobSeeker" 文本

【问题讨论】:

  • 除非你创建了HtmlHelper扩展方法,但你也可以使用循环——foreach (var item in Model.Roles) { @Html.RadioButtonFor(m =&gt; m.SelectedRole, item.Name) }

标签: c# asp.net-mvc razor checkbox asp.net-mvc-5


【解决方案1】:

我们能否以与处理下拉项目列表相同的方式显示单选按钮。

不,没有内置的 Html Helper 来呈现单选按钮列表。

但是,您可以使用简单的 foreach 循环并一一渲染它们。

仅供参考:如果 value 和 key 相同,则可以使用 List&lt;string&gt; 而不是 Dictionary&lt;string, string&gt;

动作方法

public ActionResult Index()
{
    var model = new SampleViewModel
    {
        Items = new Dictionary<string, string> {{"Referrer", "1"}, {"JobSeeker", "2"}}
    };
    return View(model);
}

视图模型

public class SampleViewModel
{
    public Dictionary<string, string> Items { get; set; }

    public string SelectedItem { get; set; }

    public SampleViewModel()
    {
        Items = new Dictionary<string, string>();
    }
}

查看

@foreach (var item in Model.Items)
{
    <label>
        @Html.RadioButtonFor(m => Model.SelectedItem, item.Value, 
            new { @class = "js-radio", id = "" })
        <span>@item.Key</span>
    </label>
}

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2023-03-30
    • 2014-03-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多