У меня есть приложение ASP.net с [HttpGet]
для просмотра ActionResult под названием «Create» на контроллере под названием Students
сообщения модели к MVC ActionResult
Мой «Student», затем отправило к следующему контроллеру.
[HttpPost]
public async Task<ActionResult> Create(Student student)
{
Student.Add(student);
if (ModelState.IsValid)
{
var result = db.Students.Add(student);
await db.SaveChangesAsync();
return Details(result);
}
return View(new CreateStudent());
}
return Details(result);
это линия меня интересует.
Раньше я был RedirectToAction
, где я прошел в результате. Id
и использовали запрос GET
для запроса базы данных.
Но я не хотел бы иметь URL, как «студенты/подробности/ид = 123» или «студентов/подробности/123» Я хочу Post
моей модели к контроллеру «студенты/подробности»
результат вар является единственным «Student'and мой„Детали“ActionResult выглядит следующим образом:
[HttpPost]
public async Task<ActionResult> Details(Student student)
{
//
}
но return Details(result);
не работает, я получаю сообщение об ошибке:
'Элемент модели, переданный в словарь, имеет тип' LinkApp.Models.Student ', но для этого словаря требуется элемент модели типа' LinkApp.Models.DTOs.CreateStudent '.'
Но я считаю, что это потому, что мой URL никогда не идет на «/ Студенты/Детали», мой URL-прежнему показывает «/ Студенты/Создать»
Любая помощь приветствуется. И опять же, если это не ясно, пожалуйста, обратитесь к любой ясности
Благодаря
EDIT БЛАГОДАРЯ МНЕ НЕ БЫТЬ ОЧЕНЬ ОЧИСТИТЬ;)
Как насчет возврата («Детали», результат); ? Разве это не работает? –
Это все еще не совсем ясно, что вы пытаетесь сделать. –
Ваш вопрос зависит от метода действий «Подробнее», который не помещается в ваш код! –