Foreach声明不能在类型' '因为它不包含' GetEnumerator'的公开定义

时间:2014-05-02 10:22:23

标签: c# asp.net-apicontroller

我的Api控制器中有以下内容:

[AcceptVerbs("POST")]
public Model.ViewModel.ContactSaveRequest DeleteMethod(Model.ViewModel.ContactSaveRequest methodsToDelete)
{
    var contactMethodRepos = new Model.ContactMethodRepository();

    foreach (var contactMethod in methodsToDelete)
    {
        contactMethodRepos.Delete(contactMethod);
        return contactMethod;
    }
}

这是我定义联系方式的类

[JsonProperty("id")]
public int ID { get; set; }

[JsonProperty("contactID")]
public int ContactID { get; set; }

[JsonProperty("typeOfContactMethodID")]
public int TypeOfContactMethodID { get; set; }

[JsonProperty("text")]
public string Text { get; set; }

[JsonProperty("methodsToDelete")]
public IEnumerable<ContactMethod> methodsToDelete { get; set; }

ContactSaverequest上课:

public class ContactSaveRequest
{
    [JsonProperty("contact")]
    public Contact Contact { get; set; }

    [JsonProperty("contactMethods")]
    public IEnumerable<ContactMethod> ContactMethods { get; set; }        
}

我有一个数组,它将方法推入其中(methodsToDelete)。我尝试在数组上使用Delete方法,但仍然遇到contactSaveRequest不包含GetEnumerator定义的问题。

2 个答案:

答案 0 :(得分:2)

听起来你只想使用:

foreach (var contactMethod in methodsToDelete.ContactMethods)

您无法迭代ContactSaveRequest,但可以遍历IEnumerable<ContactMethod>属性返回的ContactMethods

答案 1 :(得分:-1)

尝试像这样实现IEnumerable接口

公共类ContactSaveRequest:IEnumerable {

}