gpt4 book ai didi

c# - MVC 绑定(bind)复选框以反转其含义

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:24 25 4
gpt4 key购买 nike

在我的模型类中,我有一个 bool 属性 DoNotEmail

在我被赋予创建 View 的UI设计中,复选框的含义是颠倒的;即复选框旁边的标签显示 “发送电子邮件”

通常我会像这样添加复选框:@Html.CheckBoxFor(model => model.DoNotEmail) 但显然这是错误的方式。

我是否需要为此复选框创建一个带有自定义属性的单独 View 模型,或者是否有一些聪明的方法可以做类似的事情:@Html.CheckBoxFor(model => !model.DoNotEmail)(这显然不起作用)?

最佳答案

将实体直接传递给您的 View 从来都不是一个好主意,如果您的数据库模式发生变化,您将不得不遍历所有 View 并更新它们。我建议创建一个 ViewModel 并仅传递 View 所需的数据,然后在 Controller 中映射您的 DoNotEmail 属性。这样你就可以保持你的模型/ View 之间的抽象并保持你的 View 简单,例如

public void ViewModel
{
[DisplayName("Send Email")]
public bool SendEmailNotification { get; set; }
}

查看

@model ViewModel

@Html.CheckBoxFor(m => m.SendEmailNotifications)

Controller

public void Post(ViewModel model)
{
var entity = ...;
entity.DoNotEmail = !model.SendEmailNotification;
}

关于c# - MVC 绑定(bind)复选框以反转其含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com