我是 Visual Studio 2010 .NET 4.0 动态数据的新手。现在我正在尝试为我的网站做一个简单的下拉列表(用 C# 编写)。
我有一个名为协议的字段(如 TCP 协议中的)。我希望用户能够选择静态值之一。在过去使用经典的 ASP 和 HTML 时,我会使用这样的东西:
<form name=form1 method="POST" action="./insert.asp">
...
<select name="PROTOCOL" size="1">
<option value="https" selected>https
<option value="sftp">sftp
<option value="ftps">ftps
</SELECT>
...
</form>
...然后在./insert.asp 中处理数据库。
到目前为止,我已经找到了有关如何在 Visual Studio 2008 (.NET 3.5) 中执行此操作的说明,但这在 WS2010 和 .NET 4.0 中不起作用: http ://csharpbits.notaclue.net/2008/07/dynamic -data-and-field-templates-your.html
按照http://www.asp.net/web-forms/videos/aspnet-dynamic-data中的说明,我认为为了自定义我需要的字段
- 在 App_Code 文件夹 (MyService.cs) 中为我的自定义代码创建文件。
- 为我的 MS-SQL 表(服务)创建一个“公共部分类”。
这是我的(¿可悲的?)努力(App_Code/MyService.cs):
// MyService.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.Web;
using System.ComponentModel;
[MetadataType(typeof(serviceMetadata))]
public partial class service
{
}
public class serviceMetadata
{
[EnumDataType(typeof(ProtocolType))]
public object protocol { get; set; }
}
public enum ProtocolType
{
https,
sftp,
ftps
}
这构建正常,但运行它以“ArgumentException 未由用户代码处理/传入的值必须是枚举基础或枚举的基础类型,例如 Int32”结束。\DynamicData\FieldTemplates\Enumeration.ascx.cs -file 中的消息。
帮助表示赞赏。