#c# #asp.net #entity-framework
#c# #asp.net #entity-framework
Вопрос:
У меня есть эта функция для возврата списка палуб в моем DeckController, которая отправляет запрос на мою функцию GetDecks в моем DeckDataController, которая работает должным образом. Однако, когда я пытаюсь добавить другие методы, я получаю неверный запрос statuscode 400.
//DeckController.cs
// GET: Deck/List
/// <summary>
/// Get a list of all Decks
/// </summary>
/// <returns>returns a list of Decks</returns>
public ActionResult List()
{
// api string
string url = "DeckData/GetDecks";
//http request to the url
HttpResponseMessage response = client.GetAsync(url).Resu<
Debug.WriteLine(response);
if (response.IsSuccessStatusCode)
{
IEnumerable<DeckDto> Decks = response.Content.ReadAsAsync<IEnumerable<DeckDto>>().Resu<
return View(Decks);
}
else
{
return RedirectToAction("Error");
}
}
//DeckDataController.cs
/// Get a list of decks in the database alongside ok code (200)
/// </summary>
/// <returns>A list of decks</returns>
/// GET: api/DeckData/GetDecks
[HttpGet]
[ResponseType(typeof(IEnumerable<DeckDto>))]
public IHttpActionResult GetDecks()
{
// get the list of decks from the database
List<Deck> Decks = db.Decks.ToList();
// create an empty Deck data transfer object
List<DeckDto> DeckDtos = new List<DeckDto> { };
Debug.WriteLine("In GetDecks");
// for each deck create a new DeckDto and push it to the list of DeckDtos.
foreach (var deck in Decks)
{
DeckDto newDeck = new DeckDto
{
DeckID = deck.DeckID,
DeckTitle = deck.DeckTitle
};
DeckDtos.Add(newDeck);
}
return Ok(DeckDtos);
}
Например, добавление следующей функции в мой DeckDataController нарушает работу моего сервера.
// DeckDataController.cs
/// <summary>
/// Finds a deck based on the deckID
/// </summary>
/// <param name="id">DeckID</param>
/// <returns>returns a DeckDto object if found, otherwise NotFound object</returns>
[HttpGet]
[ResponseType(typeof(DeckDto))]
public IHttpActionResult FindDeck(int id)
{
// find the deck in the database
Deck deck = db.Decks.Find(id);
// if deck isnt found
if (deck == null)
{
return NotFound();
}
// create a data transfer object to send back
DeckDto DeckDto = new DeckDto
{
DeckID = deck.DeckID,
DeckTitle = deck.DeckTitle
};
return Ok(DeckDto);
}
но если я прокомментирую вышеуказанную функцию, кажется, что все работает нормально.
Ответ №1:
Почему вы не используете этот код:
var deck = db.Decks.Where(i=>i.DeskID==id).FirstOrDefault();
....