MVC Удалить запись, но как закодировать это в контроллере - PullRequest
2 голосов
/ 09 мая 2011

Я новичок в MVC3 с ASP.Net (C #), но у меня нет следующей ситуации, чтобы удалить запись.

У меня есть просмотр, который просит пользователя подтвердить удаление элемента (записи). Как код у меня есть это для инициализации представления:

public ActionResult KeywordsDelete(Guid id)
{
    _db = new BlaContext();
    return _db.SearchTerms.Where(x => x.id.Equals(id)).First();
}

Но после подтверждения у меня есть следующий код.

[HttpPost]
public ActionResult KeywordsDelete(Guid id)
{
    _db = new BlaContext();
    var term = _db.SearchTerms.Where(x => x.id == id).First();
    _db.SearchTerms.Remove(term);
    _db.SaveChanges();
     return View("Keywords", _db.SearchTerms.ToList());
 }

Построение невозможно, поскольку подпись этого метода уже существует (те же параметры и имя метода).

Так что я не понимаю, как удалить запись в этой ситуации. Представление создается с шаблоном Scaffold по умолчанию (удалить).

Ответы [ 2 ]

5 голосов
/ 29 октября 2011

Я нашел альтернативное решение этой проблемы при чтении на MVC. Проверить: Улучшение деталей и методов удаления

[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id = 0)
{
    // Delete stuff...
}

Это перенаправит действие Delete на метод DeleteConfirmed.

2 голосов
/ 09 мая 2011

Вы можете назначить своей функции еще один дополнительный параметр

[HttpPost]
public ActionResult KeywordsDelete(Guid id, FormCollection collection)
{
    _db = new BlaContext();
    var term = _db.SearchTerms.Where(x => x.id == id).First();
    _db.SearchTerms.Remove(term);
    _db.SaveChanges();
     return View("Keywords", _db.SearchTerms.ToList());
 }

Но ваше действие GET также должно возвращать View, а не объект данных, я думаю.

public ActionResult KeywordsDelete(Guid id)
{
    _db = new BlaContext();
    return View(_db.SearchTerms.Where(x => x.id.Equals(id)).First());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...