#asp.net #entity-framework #asp.net-core #model-view-controller
#asp.net #entity-framework #asp.net-core #модель-представление-контроллер
Вопрос:
Я разрабатываю демонстрационное приложение, используя ASP.NET Ядро MVC ядро EF.
- У меня есть два класса моделей: Author и BlogPost;
- Отношение между ними — один (автор) ко многим (публикация в блоге);
- Я хотел бы создать автора (используя представление «AuthorForm.cshtml»), а затем немедленно перенаправиться в представление Blogpostform.cshtml») , используя ссылку на автора, созданную в качестве ссылки на создаваемый пост в блоге. Таким образом, мне не нужно будет выбирать автора для создания записи в блоге
Комментарии:
1. Не ясно, с какой проблемой вы столкнулись, есть ли у вас какой-либо код, который вы должны реализовать?
2. @NanYu Я только что отредактировал свой вопрос. Пожалуйста, проверьте это.
3. Как только вы создадите автора, просто передайте идентификатор контроллеру / действию BlogPostForm, с какой проблемой вы столкнулись?
4. Но я еще не знаю идентификатор, потому что он генерируется EF. И я не знаю, как это передать.
Ответ №1:
EF Core поможет заполнить значение столбца identity после SaveChangesAsync
функции.Для exmaple :
Author.cs:
public class Author
{
public int AuthorId { get; set; }
public string AuthorName { get; set; }
public List<BlogPost> BlogPosts { get; set; }
}
BlogPost.cs:
public class BlogPost
{
public int BlogPostId { get; set; }
public string BlogPostName { get; set; }
public int AuthorId { get; set; }
public Author Author { get; set; }
}
В действии «Создать автора» EF Core поможет заполнить идентификатор автора после сохранения :
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("AuthorId,AuthorName")] Author author)
{
if (ModelState.IsValid)
{
_context.Add(author);
await _context.SaveChangesAsync();
//here you will get id
var id = author.AuthorId;
//redirect to another action with parameter
return RedirectToAction(nameof(Index),new { id=id});
}
return View(author);
}
Затем вы перенаправите на другое действие / представление с параметром, как показано в приведенном выше коде.
Комментарии:
1. @AyodArune, пожалуйста, отметьте мой ответ как ответ, нажав зеленую кнопку проверки, которая может помочь другим, кто сталкивается с такой же проблемой