如何使用Angular 5将枚举值发送到API?

如何使用Angular 5将枚举值发送到API?,angular,enums,Angular,Enums,嗨,我正在开发Angular 5上的web应用程序。我正在将数据发送回API。API模型如下所示 public partial class ResourceDTO { [JsonProperty("id")] public System.Guid Id { get; set; } [JsonProperty("state")] public State State { get;

嗨,我正在开发Angular 5上的web应用程序。我正在将数据发送回API。API模型如下所示

public partial class ResourceDTO
       {
        [JsonProperty("id")]
        public System.Guid Id { get; set; }

        [JsonProperty("state")]
        public State State { get; set; }
       }
public enum State 
{
      NotSelected = 0,
      Allowed = 1,
      Denied = 2
}
我想向API发送数据。下面是我在类型脚本中定义的枚举

export enum State {
    NotSelected,
    Allowed,
    Denied 
}
在下面的功能中,我正在整合我的数据

 data.forEach(element => {
            const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: State };
           
            if (element.id != undefined) {
                object.id = element.id;
            }
            if (element.checked == false) {
                object.state.NotSelected;
            }
            if (element.checked == true) {
                object.state.Allowed;
            }
            if (element.allow == false) {
                object.state.Denied;
            }
            saveData.push(object);
        }); 
下面是合并数据后保存的数据


有人能告诉我我做得对吗,还是我遗漏了什么?以上输出是否为预期输出?任何帮助都将不胜感激。谢谢。

无法设置typescript枚举值,因为它是只读的。您可以通过创建一个对象文本并在发布到服务器之前根据选择设置值来尝试以下替代方法


如果最后3条语句没有任何作用,您认为它们应该做什么?据我所知,如果element.checked为false,则应设置state.NotSelected。如果element.checked为true,则应设置state.Allowed。让我知道我是否做错了?对,所以你需要做赋值:
object.state=state.Allowed等。我添加了object.state=state.NotSelected;现在我得到了错误类型state.notselected不能分配给类型'type of state',我还建议不要发送整个状态枚举,只发送所选状态作为stringThank。我试试这个
 const object = { modelType: '', userroleid: '', name: [], hasChildren: false, id: '', state: {}};

var newState ={
"Allowed": element.checked,
"NotSelected":!element.checked,
"Denied":element.allow == false
}

object.state=newState;
 if (element.id != undefined) {
                object.id = element.id;
            }