Razor Page asp-for 调用是否可以使用动态变量作为 asp-for 值的一部分

Can Razor Page asp-for calls use dynamic variables as part of the asp-for value

我想知道是否有一种方法可以从我拥有的 class 中获取字符串值,然后将这些字符串值用作 Razor 页面上 asp-for 的值的插入?我的示例将有助于解释我正在尝试做的事情以及它是否可能。

我有一个像下面这样的 class,它只包含星期几的名称...然后我希望能够动态地使用星期名称来构建 asp-对于实际 var/property 名称的值。就像在 asp-for="@(Day)StartTime" 中一样,它实际上是名为 SaturdayStartTime、SundayStartTime 等的代码背后的 var。 .然后对于@SpanHours,同样适用的是 属性 关闭 MyObject ,即 MyObject.SaturdaySpanHours , MyObject.SundaySpanHours 等......所以基本上只是希望能够 foreach 因为我'下面已经完成了,但当然那是行不通的。是否有另一种方法能够动态地将值插入 asp-for's ?谢谢

public class Days
{
    [BindProperty]
    public static List<string> DaysList { get; set; } = new List<string>
    {
        new string("Saturday"),
        new string("Sunday"),
        new string("Monday"),
        new string("Tuesday"),
        new string("Wednesday"),
        new string("Thursday"),
        new string("Friday")
    };

}  

  <div>
        @{ 
            foreach (string Day in Days.DaysList)
            {
                string SpanHours = "MyObject." + Day + "SpanHours";
            
                <input type="time" value="@Model.MyObject.@(Day)StartTime.ToString("HH:mm")" asp-for="@(Day)StartTime" />
                <input asp-for="@SpanHours" class="form-control" value=@Model.MyObject.@(Day)SpanHours />
            
            }
        }

 </div>

只是不要使用 asp-for!而是使用 nameid:

<input name="@SpanHours" id="@SpanHours" class="form-control" value=@Model.MyObject.@(Day)SpanHours />