Home > Enterprise >  I am having issue with connecting model to controller and search bar and filter for MVC .NET 5 CRUD
I am having issue with connecting model to controller and search bar and filter for MVC .NET 5 CRUD

Time:05-16

MVC Project

VS megnyitása-Create New Project-ASP.NET Core Web App (Model-View-Controller)

Project és Soultion name lehet ugyanaz.-.NET 5.0, Auth Type:Ind. Accounts – Create

  • Model létrehozása: Models jobb klikk – add – pl.: Adatmodel.class
    {
        public int Id { get; set; }
        [StringLength(60)]
        [Display(Name = "Megnevezés")]
        public string Megnevezes { get; set; }
        [StringLength(60)]
        [Display(Name = "Gyártó")]
        public string Gyarto { get; set; }
        [StringLength(30)]
        [Display(Name = "Típus")]
        public string Tipus { get; set; }
        [Column(TypeName = "decimal(10,2)")]
        [Display(Name = "Beszerzési ár")]
        public decimal BeszerzesiAr { get; set; }
    }
  • Controllers jobb klikk – Add – Controller - (MVC Controller with view, using Ent.Frame.) Model class – Adatmodel, Data control class – ApplicationDbContext (projectneve.Data) – Controller name – tetszőleges (RaktarController) – Add

  • Kereses létrehozása: Models mappa jobb klikk – add new class – (AruKereso.class) add

CodePudding user response:

First you need to add a new datamodel:

    public class Arukereso
    {
        public string megnevezesKereses { get; set; }
        public string tipusKereses { get; set; }
        public SelectList tipusLista { get; set; }
        public List<Adatmodel> Aru { get; set; }
    }

then you need to add the function in the controller(index part) like this:

// GET: Adatmodels
        public async Task<IActionResult> Index(string megnevezesKereses, string tipusKereses)
        {
            Arukereso keresoAru = new Arukereso();
            var Aru = _context.Adatmodel.Select(x => x);
            if (!string.IsNullOrEmpty(megnevezesKereses))
            {
                keresoAru.megnevezesKereses = megnevezesKereses;
                Aru = Aru.Where(x => x.Megnevezes.Contains(megnevezesKereses));
            }

            if (!string.IsNullOrEmpty(tipusKereses))
            {
                keresoAru.tipusKereses = tipusKereses;
                Aru = Aru.Where(x => x.Tipus.Equals(tipusKereses));
            }

            keresoAru.tipusLista = new SelectList(await _context.Adatmodel.Select(x => x.Tipus).Distinct().OrderBy(x=>x).ToListAsync());
            keresoAru.Aru = await Aru.ToListAsync();

            return View(keresoAru);
        }

CodePudding user response:

MVC Project

VS megnyitása-Create New Project-ASP.NET Core Web App (Model-View-Controller)

Project és Soultion name lehet ugyanaz.-.NET 5.0, Auth Type:Ind. Accounts – Create

  • Model létrehozása: Models jobb klikk – add – pl.: Adatmodel.class
public class Adatmodel
    {
        public int Id { get; set; }
        [StringLength(60)]
        [Display(Name = "Megnevezés")]
        public string Megnevezes { get; set; }
        [StringLength(60)]
        [Display(Name = "Gyártó")]
        public string Gyarto { get; set; }
        [StringLength(30)]
        [Display(Name = "Típus")]
        public string Tipus { get; set; }
        [Column(TypeName = "decimal(10,2)")]
        [Display(Name = "Beszerzési ár")]
        public decimal BeszerzesiAr { get; set; }
    }
  • Controllers jobb klikk – Add – Controller - (MVC Controller with view, using Ent.Frame.) Model class – Adatmodel, Data control class – ApplicationDbContext (projectneve.Data) – Controller name – tetszőleges (RaktarController) – Add

  • Kereses létrehozása: Models mappa jobb klikk – add new class – (AruKereso.class) add

public class Arukereso
    {
        public string megnevezesKereses { get; set; }
        public string tipusKereses { get; set; }
        public SelectList tipusLista { get; set; }
        public List<Adatmodel> Aru { get; set; }
    }
  • Controllers beállítása: – Controllerunk megnyitása – Index átalakítása!

// GET: Adatmodels

  public async Task<IActionResult> Index(string megnevezesKereses, string tipusKereses)
     {
         Arukereso keresoAru = new Arukereso();
         var Aru = _context.Adatmodel.Select(x => x);
         if (!string.IsNullOrEmpty(megnevezesKereses))
         {
             keresoAru.megnevezesKereses = megnevezesKereses;
             Aru = Aru.Where(x => x.Megnevezes.Contains(megnevezesKereses));
         }

         if (!string.IsNullOrEmpty(tipusKereses))
         {
             keresoAru.tipusKereses = tipusKereses;
             Aru = Aru.Where(x => x.Tipus.Equals(tipusKereses));
         }

         keresoAru.tipusLista = new SelectList(await _context.Adatmodel.Select(x => x.Tipus).Distinct().OrderBy(x=>x).ToListAsync());
         keresoAru.Aru = await Aru.ToListAsync();

         return View(keresoAru);
     }

[Authorize] hozzáadása Create, Edit, Delete

View-k Beállítása: Viewvs-Raktar-Index.cshtm

Első sor: @model ProjectNEVE.Models.Arukereso

KB. 30. sor:

          <th>
          @Html.DisplayNameFor(model => model.Aru[0].Megnevezes)
         </th>
         <th>
             @Html.DisplayNameFor(model => model.Aru[0].Gyarto)
         </th>
         <th>
             @Html.DisplayNameFor(model => model.Aru[0].Tipus)
         </th>
         <th>
             @Html.DisplayNameFor(model => model.Aru[0].BeszerzesiAr)
         </th>

Kb: 46. sor:

 @foreach (var item in Model.Aru) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Megnevezes)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Gyarto)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Tipus)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.BeszerzesiAr)
            </td>
            <td>
                <a asp-action="Edit" asp-route-id="@item.Id"  style="width:100px">Módosítás</a>
                <a asp-action="Details" asp-route-id="@item.Id"  style="width:100px">Részletek</a>
                <a asp-action="Delete" asp-route-id="@item.Id"  style="width:100px">Törlés</a>
            </td>
        </tr>

KB.: 12. sor p és a table közé

<form asp-controllers="Raktar" asp-action="Index" method="get">
    Megnevezés:
    <input asp-for="megnevezesKereses">

    Beszállító:
    <select asp-for="tipusKereses" asp-items="Model.tipusLista">
        <option value="">Összes</option>
    </select>
    <input type="submit" value="Keresés">
</form>
  • Add-Migration valami → update-database

-Startup fájl átírása : Controller=Home legyen controller=Raktar

  • Related