我有一个使用mvc c#和typescript代码的web应用程序,我有一个C#枚举和描述。如何从一个typescript 1.8代码迭代C#枚举描述属性
MyEnum
{
[First Value] FirstValue,
[Second Value] SecondValue
}
我需要重复的是C#枚举,并得到说明添加到打字稿一个阵列 - 我怎样才能做到这一点?
编辑 既然我在工作中,我可以发布完整的代码 - 我的问题与打字稿有关。
命名空间作业{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Serenity.ComponentModel;
using System.ComponentModel;
[EnumKey("Order.Status")]
public enum Status
{
[Description("Order Active")]
OrderActive = 1,
[Description("Order Complete")]
OrderComplete = 2
}
}
如何重复上述打字稿枚举?
打字稿代码如下:
export class OrderStatusEditor extends Serenity.Select2Editor<any, any> {
private OrderStatusList: string[];
private statName: Status;
constructor(container: JQuery) {
super(container, null);
// Iterate the C# Enum Status
for (var key in statName)
this.addOption("key1", "Text 1");
}
在上面的 “文本1” 是枚举状态 Description属性 “命令激活”,而不是Status.OrderActive。
你不能做到这一点香草JavaScript,因此你不能这样做它在TypeScript中。您必须在服务器上收集描述并将它们发送给客户端。你如何去做这取决于你。 – krillgar
@krillgar - 这就是为什么我有一个打字稿标签,并特别要求如何在打字稿中做到这一点。请查看我正在尝试执行此操作的代码示例。 – Ken
这就是我要说的。当您处于TypeScript代码中时,您无权访问服务器端代码。你的TypeScript变成了香草JavaScript,它在浏览器中执行。这段代码没有任何线索,也不关心在服务器上执行什么代码,更不用说它使用的是什么语言。就像我说的,你需要在C#中完成这些工作,并将值发送到TypeScript。你无法在那里找到那些信息。 – krillgar