Я пытаюсь создать представление в своем приложении, которое выполняет основные команды CRUD в ASP.NET Core, чтобы научить себя некоторым новым навыкам.Однако я застрял и был бы признателен за помощь, пожалуйста.
Я бы хотел, чтобы каждый «компонент» приложения находился в частичном представлении для технического обслуживания в будущем.Я изначально заставил мое представление Index использовать объявление типа IEnumerable (для каждого цикла):
@model IEnumerable<Project.Web.Models.Sample.SampleModel>
, которое отлично работало для возврата списка и рендеринга страницы, но затем при попыткечтобы мое модальное окно было частично загружено на страницу и вставлено с помощью функции «CreateSample» на контроллере, оно не подхватывало функцию и завершилось неудачно при вставке (действие формы не найдено).Затем, если я попытаюсь добавить:
@model Project.Web.Models.Sample.SampleModel
на страницу представления CreateModal, она выдаст ошибку и даже не позволит мне визуализировать страницу, я предполагаю, что из-за частичной загрузки приложение выглядит как имеющее два объявления SampleModel,Если я создаю эту страницу полностью отдельной и не частично загруженной обычным объявлением @model, это работает.
Пока у меня есть базовая настройка, и я включил свой код для каждой из них ниже.
Модель - SampleModel
public class SampleModel
{
public int Id { get; set; }
public string SampleText { get; set; }
}
Контроллер - SampleController
public class SampleController : Controller
{
public const string ControllerName = "Sample";
//Open Database Connection
private _DBContext DBDatabase = new _DBContext ();
public ActionResult Index()
{
var Model = DBDatabase.Sample.Select(s => new SampleModel
{
Id = s.Id,
SampleText = s.SampleText
}).ToList();
return PartialView(Model);
}
[ActionName("_CreateModal")]
public ActionResult InsertNewRecord()
{
var Model = DBDatabase.Sample.Select(s => new SampleModel
{
Id = s.Id,
SampleText = s.SampleText
}).ToList();
return PartialView("_CreateModal", Model);
}
Просмотры - индекс, просмотр, создание
Индекс - Вызывает частичное представление для просмотра и создания
@using Project.Web.Controllers
@model Project.Web.Models.Sample.SampleModel
<!--html stuff here -->
@await Html.PartialAsync("_CreateModal")
<!--more html stuff here -->
@await Html.PartialAsync("_ViewData")
Просмотр - Переход к циклам записей
@model Project.Web.Models.Sample.SampleModel
<table style="width: 100%;" id="example">
<thead>
<tr>
<th>#</th>
<th>Sample Text</th>
<th class="text-center">Status</th>
<th class="text-center">Actions</th>
</tr>
</thead>
<tbody>
@foreach (var sample in Model)
{
<tr>
<th scope="row">@sample.Id</th>
<td>@sample.SampleText</td>
<td class="text-center">
<div class="badge badge-success">Active</div>
</td>
<td class="text-center">
<div role="group" class="btn-group-sm btn-group">
<button class="btn-shadow btn btn-primary">Edit</button>
<button class="btn-shadow btn btn-primary">Delete</button>
</div>
</td>
</tr>
}
</tbody>
</table>
Создать - Вставить новую запись
@model Project.Web.Models.Sample.SampleModel
<form method="post" asp-action="/SampleModel/CreateSample">
<div class="form-group">
<label for="CreationTime">SampleText</label>
<div>
<input type="text" class="form-control" id="SampleText" name="SampleText" placeholder="SampleText">
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Sign up</button>
</div>
</form>