2014-11-06 2 views
0

Я использую несколько методов и интерфейсов в этом. Что мне нужно для метода, который я делаю, просто просто удаляю 1 значение в массиве атрибутов. Весь материал здесь был ранее создан кем-то другим, и я просто создаю часть удаления для атрибута, который нужно удалить. Во всяком случае, метод, который выполняет атрибут профиля и устанавливает значение, немного работает на заднем конце. У меня есть метод для UserProfileAttributeSetRequest, который выглядит следующим образом:Удаление одного значения в массиве в MVC

public UserProfileAttributeSetRequest() 
    { 
    } 


public UserProfileAttributeSetRequest(Guid userIdentifier, Dictionary<string, string> profileAttributes) 
    { 
     UserIdentifier = userIdentifier; 
     ProfileAttributes = profileAttributes; 
    } 

Это пожары метод на заднем конце, который будет принимать в информации передается к нему и изменить то, что должно быть изменено. Метод, который я строй в контроллере, вероятно, нуждается в некоторой работе, я все еще достаточно новый для MVC, но вот что я получил:

public ActionResult RemoveEmployeeID(UserInfo userInfo) 
    { 
     User usr = UserManager.GetUser(userInfo.UserGuid); 
     var empID = usr.ProfileAttributes.FirstOrDefault(e => e.ProfileAttributeID == 3); 
     usr.ProfileAttributes.Remove(empID); 
     UserProfileAttributeSetRequest upd = new UserProfileAttributeSetRequest(); 

    } 

Я захватывая полностью пользователь и выделение сингла атрибут, который я хочу изменить, но Request жалуется, когда я помещаю в него какие-либо параметры. Что я делаю не так?

+0

Вы получаете исключение? Что говорит запрос, когда он жалуется? – McCee

+0

Это не сам запрос, который жалуется, когда я помещаю paramators в UserProfileAttributeSetRequest, о котором он просит, потому что на обратной стороне он настроен на получение словаря, как мне передать одно значение обратно для удаления? – Skrubb

+0

Если 'empID' возвращается правильно,' Remove (empID) 'должен работать. Но вы также должны вызвать метод «Обновить» или «Сохранить» после его удаления. Попробуйте добавить 'UserManager.Update (usr);' после его удаления. – McCee

ответ

0

попробовать, как этот

var emp = usr.ProfileAttributes.Where(e => e.ProfileAttributeID == 3).FirstOrDefault(); 
usr.ProfileAttributes.Remove(emp); 

вы должны обновить базу данных после удаления элемента.

Смежные вопросы