C# (ASP.Net) 将选择值链接到 Codebehind 中的常量

Posted

技术标签:

【中文标题】C# (ASP.Net) 将选择值链接到 Codebehind 中的常量【英文标题】:C# (ASP.Net) Linking selection values to constants in Codebehind 【发布时间】:2010-09-17 03:22:00 【问题描述】:

ASPX 代码

> 开发人员 dev.test.com staging.test.com

ASPX.CS - 代码隐藏

常量字符串 ServerDeveloper = "开发者";

ASPX 错误:此上下文不支持代码块。

问题:那么,将下拉菜单/单选按钮/... ASPX 值绑定到与 CodeBehind 代码共享的常量的正确方法是什么?

我知道我可以[来自 CodeBehind] 执行 rbServer.Add.Item("developer"),但是有没有办法从 Presentation 方面实现它?

【问题讨论】:

我们是否遗漏了一些信息?请修复 ASPX 代码! 【参考方案1】:

会是:

rbServer.Items.Add(ServerDeveloper)

好的,既然你想从演示文稿中做到这一点......这是可能的,但非常丑陋:

Blah

请注意,代码块必须高于标记 - 如果你把它放在下面,它似乎不起作用。另请注意,必须保护 const 才能使页面访问它。这对我来说非常像黑客攻击,但确实如此。

【讨论】:

我同意内联代码很难看。我只是希望 但是,它有一个很好的“细节”,即在两个领域都使用了常量。【参考方案2】:

回想起来,更好的解决方案是使用 rbServer.Items.Add() 从代码隐藏中添加它

【讨论】:

我不同意,如果它们是常量值,则更容易将它们放在 aspx 中,因为在生成资源文件时,它们会在 resx 中自动生成。如果将它们添加到代码隐藏中,则必须使用 GetLocalResoureObject() 手动链接资源主目录...【参考方案3】:

在大多数情况下,我将 ListItems 添加到代码隐藏中的列表中,而不是在标记中。我猜这会解决你的问题(尽管我认为我们在这里遗漏了一些信息)。创建新的 ListItems 并将它们添加到 rbServer 的 Items 集合中。

【讨论】:

【参考方案4】:

出于您发布的原因,我通常会尽量避免使用 RadioButtonList 控件。虽然我还没有想出一个易于使用的替代方案:(

【讨论】:

以上是关于C# (ASP.Net) 将选择值链接到 Codebehind 中的常量的主要内容,如果未能解决你的问题,请参考以下文章

如何将c#做好的asp.net网站部署到iis上

单击 HTML 链接时在 ASP.NET 中调用 C# 函数

检查选择列 ASP.NET C# 的数据库中是不是存在值

Asp.net C# 使用 Javascript 将数据从 gridview 显示到 TextBox

如何在 C# 中为枚举值添加描述以与 ASP.NET MVC 中的下拉列表一起使用? [复制]

ASP.NET 项目 App_Code下无法找到类