默认情况下如何设置单选按钮

时间:2020-09-19 08:40:31

标签: asp.net-core-mvc

我正在实现asp.net core 3.1。我在剃刀视图中有三个单选按钮,并使用以下代码,我想将选定的单选按钮值发送到控制器中的Index动作,以显示其相关数据。我的问题是,我无法将这些单选按钮之一设置为默认选中状态。

@model CSD.ChartObjects
 <form method="post">
        @foreach (var year in Model.Years)
        {
            <input type="radio" asp-for="Year" value="@year" />@year<br />
        }
        <input type="submit" asp-action="Index" />
    </form>

这是我用剃刀读取的模型对象

public class ChartObjects
    {
        public List<ChartModel> Percent { get; set; }
        public List<ChartModel> Time { get; set; }
        public List<ChartModel> Avg { get; set; }
        public List<ChartModel> Total { get; set; }


        public string Year { get; set; }
        public string[] Years = new[] { "1398", "1399", "1400" };
    
}

这是我的HomeController的主体:

[HttpGet]
        public IActionResult Index()
        {
            return (BuildIndexModel("1399"));
        }

        [HttpPost]
        public IActionResult Index([FromForm] string currentYear)
        {
            return (BuildIndexModel(currentYear));
        }



        public IActionResult BuildIndexModel(string currentYear)
        {
...
}

3 个答案:

答案 0 :(得分:0)

我不知道如何使用asp.net,但是在JS中,我只需要访问HTML Input标签的属性,然后就可以将属性“ checked”分配为true。

我猜是这样的:

HtmlElement Input1 = webBrowser1.Document.GetElementById("ID"); // consider adding an ID
Input1.Attributes.Add("checked", "true");

检查这两个链接:

答案 1 :(得分:0)

我的问题是,我无法将这些单选按钮之一设置为默认选中状态。

要设置默认的选中单选按钮,您可以尝试使用以下代码段。

<form method="post">
    @foreach (var year in Model.Years)
    {
        <input type="radio" asp-for="Year" value="@year" checked="@(year == Model.Years.FirstOrDefault() ? "checked" : null)"/>@year<br />
    }
    <input type="submit" asp-action="Index" />
</form>

更新:

默认情况下,我的数据是1399

您可以通过ViewData传递默认年份,如下所示。

在控制器操作中

ViewData["defaultyear"] = "1399";

查看页面

<input type="radio" asp-for="Year" value="@year" checked="@(year == ViewData["defaultyear"].ToString() ? "checked" : null)"/>@year<br />

答案 2 :(得分:0)

我认为这会起作用:

@foreach (var year in Model.Years)
{
    var fi = (year == Model.Years[0]) ? true : false ;
    <input type="radio" asp-for="Year" value="@year" checked="@fi" />@year<br />
}