如何在 MVC 模型中表示一个月的复选框

2023-12-27

我无法理解如何使用 MVC 创建下表,并将其成功绑定到模型:

我基本上需要跟踪该月的哪几天需要发生事件。这是我对模型的尝试:

EDIT:这不是一个月,而是任意 4 周的周期

public class ScheduleViewModel
{
    public int PatientId { get; set; }          
    public List<Schedule> Schedules { get; set;}          
}

public class Schedule {
    public int Week { get;set;}
    public Day Day { get;set;}
    public bool IsSelected { get;set;}    
}

public enum Day
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

我可以成功渲染视图(未绑定到模型)。我意识到我需要在输入中使用 @html.CheckBoxFor 。

这是我的视图 html 的粗略副本:

@model WebApplication10.Models.ScheduleViewModel
@using (Html.BeginForm())
{
<table class="table table-striped">
    <thead>
        <tr>
            <th></th>
            @{
foreach (Day t in Enum.GetValues(typeof(Day)))
{
    <th>@t</th>
}
            }
        </tr>
    </thead>
    <tbody>

        @{
for (int i = 1; i <= 4; i++)
{
    <tr>
        <td>Week @i</td>
        @foreach (Day t in Enum.GetValues(typeof(Day)))
        {
            <td><input type="checkbox" /></td>
        }
    </tr>
}
        }
    </tbody>
</table>

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Create" class="btn btn-default" />
    </div>
</div>
}

我如何成功发布已选中的复选框?我的 ViewModel 有意义吗?


我建议您将视图模型更改为

public class DayVM
{
  public Day Day { get; set; }
  public bool IsSelected { get; set; }
}
public class WeekVM
{
  public WeekVM()
  {
    Days = new List<DayVM>();
    Days.Add(new DayVM() { Day = Day.Sunday });
    Days.Add(new DayVM() { Day = Day.Monday });
    .. etc
  }
  public List<DayVM> Days { get; set; }
}
public class ScheduleViewModel
{
  public ScheduleViewModel()
  {
    Weeks = new List<WeekVM>();
    Weeks.Add(new WeekVM());
    .... etc
  }
  public int PatientId { get; set; }          
  public List<WeekVM> Weeks { get; set;}          
}

然后在视图中

for(int i = 0; i < Model.Weeks.Count; i++)
{
  <tr>
    <td>Week @i</td>
    for(int j = 0; j < Model.Weeks[i].Days.Count; j++)
    {
      <td>
        @Html.CheckBoxFor(m => m.Weeks[i].Days[j].IsSelected)
      </td>
    }
  </tr>
}

旁注:我认为你真的不需要在这里拥有自己的枚举 - 你可以只使用DayOfWeek枚举,例如Days.Add(new DayVM() { Day = DayOfWeek.Sunday });。另请注意,我没有包含以下输入:Day属性,因为您可以轻松地从集合中的索引确定该属性。事实上Day如果您手动呈现表标题行,则可能根本不需要属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MVC 模型中表示一个月的复选框 的相关文章

  • C#9 顶级语句文件上的属性

    我正在尝试向顶级语句文件添加属性 但没有找到任何相关信息 是否可以 对于某些上下文 我想仅在该文件中禁用规则 SuppressMessage StyleCop CSharp LayoutRules SA1516 ElementsMustBe
  • C++ 有像 Pascal 一样的“with”关键字吗?

    withPascal 中的关键字可用于快速访问记录的字段 有人知道 C 是否有类似的东西吗 前任 我有一个包含许多字段的指针 但我不想这样输入 if pointer gt field1 pointer gt field2 pointer g
  • 何时对向量进行归一化?

    我正在学习 XNA 并且在几乎所有的教育套件中都可以找到http creators xna com en US http creators xna com en US 我总是看到向量上对 Normalize 的调用 我知道归一化基本上将向量
  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • initializer_list 和默认构造函数重载决策

    include
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 在 C# 中生成随机值

    如何使用以下命令生成随机 Int64 和 UInt64 值RandomC 中的类 这应该可以解决问题 这是一个扩展方法 因此您可以像调用普通方法一样调用它Next or NextDouble上的方法Random目的 public stati
  • AspNetCore.SignalR:无法启动未处于初始状态的连接

    我无法让 ASP NET Core SignalR 应用程序正常运行 我有这个服务器端代码 public class PopcornHub Hub private int Users public async Task BroadcastN
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • C# - 命名空间内的类型声明

    在命名空间内而不是在类中声明类型的可能用途是什么 For ex namespace Test public delegate void Ispossible 这是有效的并且不会产生任何编译错误 但我无法想象为什么我们会以这种方式声明它而不是
  • 统一;随机物体移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在制作一款机器人战斗游戏 我希望敌人随机移动 然后有时会向敌人移动 我希望运动包含在其中的代码 else if avoid fal
  • 获取大于某个数字的元素个数

    我正在尝试解决以下问题 数字被插入到容器中 每次插入数字时 我需要知道容器中有多少元素大于或等于当前插入的数字 我相信这两个操作都可以以对数复杂度完成 我的问题 C 库中有标准容器可以解决这个问题吗 我知道std multiset可以在对数
  • 计算两个日期之间的工作日数?

    在C 中 如何计算business 或工作日 两个日期之间的天数 我以前曾经遇到过这样的任务 并且我已经找到了解决方案 当可以避免的时候 我会避免列举其间的所有日子 这里就是这种情况 正如我在上面的一个答案中看到的那样 我什至没有提到创建一
  • XmlDocument Save 使文件保持打开状态

    我有一个简单的 C 函数 可以创建一个基本的 XML 文件并保存 private void CreateXMlFile string Filename string Name string Company XmlDocument doc n
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • 预测失败:内容必须是标量

    我已成功训练 导出并上传我的 retrained graph pb 到 ML Engine 我的导出脚本如下 import tensorflow as tf from tensorflow python saved model import
  • 不区分大小写

    If TextBox2 Text a AndAlso TextBox21 Text a Then MessageBox Show A totCorrect totCorrect corAns ElseIf TextBox2 Text b A
  • 如何实现通用 Kafka Streams 反序列化器

    我喜欢 Kafka 但讨厌编写大量序列化器 反序列化器 所以我尝试创建一个GenericDeserializer
  • Tk 树视图列排序

    有没有办法对 a 中的条目进行排序Tk 树视图 http www tkdocs com tutorial tree html通过单击该列 令人惊讶的是 我找不到任何相关文档 教程 帕特霍伊茨 http www patthoyts tk fr
  • .htaccess 中的 RewriteCond 和 RewriteRule

    我有一个客户端文件夹位于http www example com client http www example com client但是 我现在已经在服务器上安装了 SSL 并且想要使用 HTACCESS 添加永久重定向 以便每当访问 c
  • Swagger UI 中的掩码输入(示例 - 密码)?

    我有一个 API 的三个路径变量 我想用 屏蔽 Swagger UI 上的一个输入 使用 Springdoc OpenAPI 时如何做到这一点 您只需使用 swagger 注释即可 Parameter schema Schema type
  • 有什么理由不在单个节点上使用 Docker Swarm(而不是 Docker-Compose)?

    有 Docker Swarm 现已内置于 Docker 中 和 Docker Compose 人们似乎只在单个节点上运行容器时使用 Docker Compose 但是 Docker Compose 不支持任何deploy配置值 请参见htt
  • jqGrid:禁用排序

    我使用手动将行添加到 jqGridaddRowData 并且必须保持这些行的顺序 但是 在分页时 所有行都会重新排序以按网格的第一个可见列进行排序 我已经关闭了所有可以找到记录的排序选项 如何防止所有排序并维护所有页面中的行顺序 Code
  • 如何使用 LINQ 将这些数据组织成我想要的对象?

    我有一个以下类 我试图创建一个包含我查询过的一堆数据的列表 public class Agency public string AgencyName get set public int AgencyID get set public IE
  • Weblogic 12.1.3 PrivilegedActions 类未找到

    我创建了一个简单的项目 调用 jms 队列并放入消息 这里是代码 public class QueueSend Defines the JNDI context factory public final static String JNDI
  • 在 iOS 配置门户上创建 AdHoc 配置文件时出错 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 每当我尝试
  • IE想要从Django下载返回的JSON

    我有一个 Django 站点 其中一个页面正在执行基于 AJAX 的文件上传 使用Valum 的文件上传器 http valums com ajax upload 通过 JSON 返回一些信息 Django 返回 JSON 的方式是 ret
  • Dapper for NET Core:插入表并返回插入行的 id [重复]

    这个问题在这里已经有答案了 我的存储库中有以下方法 到目前为止 我相信返回的 int 只是指示操作是否成功的一个 我希望 int 是成功执行后返回的 id 表的单列 我该如何做到这一点 public async Task
  • 邮件中的证书链错误中的自签名证书

    我尝试编写一个简单的邮件程序 我用了节点邮件程序 and SMTP协议模块 我执行了 但它显示一个错误 例如 邮件中的证书链错误中的自签名证书 问题是什么 var express require express var app expres
  • 在 vscode 中调试 Serverless 时未命中断点

    在 VSCode 中调试基于无服务器的应用程序时 我的断点均未处于活动状态 启动 json configurations console integratedTerminal cwd workspaceRoot name Debug por
  • 如何正确使用 LINQ 和 MySQL? [复制]

    这个问题在这里已经有答案了 可能的重复 LINQ to MySQL 最好的选择是什么 https stackoverflow com questions 1469100 linq to mysql what is the best opti
  • Virtualenv 与 Eclipse (Galileo) [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人可以指导让 Eclipse Galileo PyDev 和 Virtualenv 一起工作吗 我专门尝试运行 Pinax 但任何说
  • C++:处理线程本地对象销毁

    我有一个日志系统 它基本上使用线程本地缓冲区来记录 这有助于减少锁定 可以将一堆消息写入线程本地缓冲区并一次性刷新 而且由于它是线程本地的 我们可以避免为每个日志消息分配缓冲区 无论如何 问题是在进程退出期间 我们在访问线程本地缓冲区时看到
  • 如何以不同的增量减去 2 个单独文件的特定行

    https i stack imgur com oYoYz png https i stack imgur com oYoYz png https i stack imgur com AdmuM png https i stack imgu
  • 如何在 MVC 模型中表示一个月的复选框

    我无法理解如何使用 MVC 创建下表 并将其成功绑定到模型 我基本上需要跟踪该月的哪几天需要发生事件 这是我对模型的尝试 EDIT 这不是一个月 而是任意 4 周的周期 public class ScheduleViewModel publ