m.FirstName) 这意味着您将模型属性作为参数(而不是值)传递,因此 MVC 可以获取元数据等。 我正在尝试在 C# Win-6ren">
gpt4 book ai didi

c# - 如何从 lambda 表达式返回模型属性(如 MVC 的 "Html.TextBoxFor(xxx)")?

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

在 MVC 中你可以说:

Html.TextBoxFor(m => m.FirstName)

这意味着您将模型属性作为参数(而不是值)传递,因此 MVC 可以获取元数据等。

我正在尝试在 C# WinForms 项目中做类似的事情,但不知道如何做。基本上我在用户控件中有一组 bool 属性,我想在字典中枚举它们以便于访问:

public bool ShowView { get; set; }
public bool ShowEdit { get; set; }
public bool ShowAdd { get; set; }
public bool ShowDelete { get; set; }
public bool ShowCancel { get; set; }
public bool ShowArchive { get; set; }
public bool ShowPrint { get; set; }

我想以某种方式定义一个以 Enum Actions 为键、属性为值的 Dictionary 对象:

public Dictionary<Actions, ***Lambda magic***> ShowActionProperties = new Dictionary<Actions,***Lambda magic***> () {
{ Actions.View, () => this.ShowView }
{ Actions.Edit, () => this.ShowEdit }
{ Actions.Add, () => this.ShowAdd}
{ Actions.Delete, () => this.ShowDelete }
{ Actions.Archive, () => this.ShowArchive }
{ Actions.Cancel, () => this.ShowCancel }
{ Actions.Print, () => this.ShowPrint }
}

我需要将属性而不是属性值传递到字典中,因为它们可能会在运行时发生变化。

想法?

-布伦丹

最佳答案

你所有的例子都没有输入参数并返回一个 bool 值,所以你可以使用:

Dictionary<Actions, Func<bool>>

然后您可以评估 lambda 以获取属性的运行时值:

Func<bool> fn = ShowActionProperties[ Actions.View ];
bool show = fn();

关于c# - 如何从 lambda 表达式返回模型属性(如 MVC 的 "Html.TextBoxFor(xxx)")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115481/

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