根据查询结果检查单选框列表项的值

时间:2019-07-30 13:28:41

标签: c# asp.net-core asp.net-core-mvc razor-pages

在编辑表单中,我有一个单选按钮的值,该值是从查询中获取的, 用户需要如何检查他的选择以及我想如何更改(更改他的选择)。所以我需要显示选择的正确值和另一个取消选中。该列表是手动的(不是来自数据库) 我需要类似(if value (from db==value on view checked="checked" else checked="")

的东西

这是我的代码:

@{
    var District = "Apple";
 }
<div class="col-md-10">
   <div class="checkbox">
       <input type="radio" name="District" value="@Model.District)" />
               @if (District.Length==(District.Length) )
               {
                  <ul class="list-inline" style="float: right">
                     <li class="radio space">
                        <label>
                           <input type="radio" asp-for="District" value="Apple" checked="checked">
                        </label>
                     </li>
                     <li class="radio space">
                        <label>
                           <input type="radio" asp-for="District" value="Pear" checked="">
                        </label>
                     </li>
                     <li class="radio space">
                        <label>
                           <input type="radio" asp-for="District" value="Banana" checked="">
                        </label>
                     </li>
                     <li class="radio space">
                        <label>
                           <input type="radio" asp-for="District" value="Orange" checked="">
                        </label>
                     </li>
                 </ul>
               }
   </div>
</div>

3 个答案:

答案 0 :(得分:0)

获取一个变量,并将数据库值放入其中。然后使用if{} else {}进行检查。 例如

<input type="radio" asp-for="District" value="Orange" if(databasevalue= "on") print checked="checked" else{ print checked="" } 

这是示例代码

答案 1 :(得分:0)

您不需要手动设置checked,因为当db中的数据等于无线电的值时,它将自动设置。

PageModel:

public class RadioCheckedModel : PageModel
{
    public string District { get; set; }
    public void OnGet()
    {
        District = "Apple";
    }
}

页面:

@page
@model Razor22pages.Pages.RadioCheckedModel

<h1>RadioChecked</h1>
@{
    var District = "Apple";
}
<div class="col-md-10">
    <div class="checkbox">
        <input type="radio" name="District" value="@Model.District)" />
        @if (District.Length == (District.Length))
        {
            <ul class="list-inline" style="float: right">
                <li class="radio space">
                    <label>
                        <input type="radio" asp-for="District" value="Apple" >
                    </label>
                </li>
                <li class="radio space">
                    <label>
                        <input type="radio" asp-for="District" value="Pear">
                    </label>
                </li>
                <li class="radio space">
                    <label>
                        <input type="radio" asp-for="District" value="Banana" >
                    </label>
                </li>
                <li class="radio space">
                    <label>
                        <input type="radio" asp-for="District" value="Orange" >
                    </label>
                </li>
            </ul>
        }
    </div>
</div>

结果: enter image description here

答案 2 :(得分:0)

谢谢@Xing Zou,但是我去了dif解决方案。对于下一代,这是我的解决方法 //控制器

    ViewBag.dis = new string[4] { "a", "b", "c", "d" };
//View
 @foreach (var item in (ViewBag.dis))
                    {
                        if (item != Model.District)
                        {
                            <label>
                                <input type="radio" asp-for="District" value=@item checked="">
                                <i class="fas fa-street-view"></i>@item
                            </label>
                        }
                        else
                        {

                            <i class="fas fa-street-view"></i>
                            <label>
                                <input type="radio" asp-for="District" value=@Model.District checked="checked">
                                <i class="fas fa-street-view"></i>@Model.District
                            </label>
                        }
                    }