locked
Compiling Error - Trying to insert a Client in a Asp .Net MVC Client_Index RRS feed

  • Question

  • Hi folks, This is my first projet in Asp .Net MVC, I'm starting a Client File, Insert and then consult.

    I'm getting an Error trying to insert a new client. The Table Client  -> "ClientID" is Identity.

    I can't figure out where is the Error, after 8 hours at the screen. Please help me out.

    The error ocurrs when I get the view after insert the client. I don't know which references I have to use it and how

    Thanks in advance for your help.

    Here follows the Error Message:

    Erro de Servidor no Aplicativo '/'.

    Erro de Compilação

    Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente. Mensagem de Erro do Compilador: CS1061: 'IEnumerable<ClientViewModel>' does not contain a definition for 'ClienteID' and no extension method 'ClienteID' accepting a first argument of type 'IEnumerable<ClientViewModel>' could be found (are you missing a using directive or an assembly reference?) Erro de Origem:

    Linha 14:     <tr>

    Linha 15:         <th>

    Linha 16:             @Html.DisplayNameFor(model => model.ClienteID)

    Linha 17:         </th>

    Linha 18:         <th>

    Arquivo de Origem: D:\AUTOCARWEB\AutocarWeb\AutocarWeb\Views\Client\Index.cshtml    Linha: 16

    Mostrar Saída Detalhada do Compilador:

    Mostrar Origem de Compilação Completa:

    Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.8.3928.0

    Here I will insert the code: This is the ViewModel.

    @model AutocarWeb.ViewModels.ClientViewModel
    
    @{
        ViewBag.Title = "Insert";
    }
    
    <h2>Client File</h2>
    
    
    @using (Html.BeginForm()) 
    {
        @Html.AntiForgeryToken()
        
        <div class="form-horizontal">
            <h4>ClientViewModel</h4>
            <hr />
            
    
            <div class="form-group">
                @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.City, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.City, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.City, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.County, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.County, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.County, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.State, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.State, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.State, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.Zip_Code, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Zip_Code, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Zip_Code, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.CPF, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.CPF, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.CPF, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.Idnumber, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Idnumber, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.Idnumber, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.email, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.email, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.email, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.celular_phone, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.celular_phone, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.celular_phone, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                @Html.LabelFor(model => model.home_phone, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.home_phone, new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.home_phone, "", new { @class = "text-danger" })
                </div>
            </div>
    
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Insert" class="btn btn-default" />
                </div>
            </div>
        </div>
    }
    
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
    
    @section Scripts {
        @Scripts.Render("~/bundles/jqueryval")
    }
    

    Here is where the error occurs: Index (View -> Client --> Index - here is where the programm breaks. It should display all Clients after Insert.

    @using AutocarWeb.ViewModels;
    @model IEnumerable<AutocarWeb.ViewModels.ClientViewModel>
    
    @{
        ViewBag.Title = "Clients";
    }
    
    <h2>Clients</h2>
    
    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.ClienteID)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Name)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.County) // not compiling
            </th>
            <th>
                @Html.DisplayNameFor(model => model.celular_phone)
            </th>
            <th></th>
        </tr>   
    
    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ClienteID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Name)  // not compiling
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.County)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.celular_phone)
            </td>
            <td>
                @Html.ActionLink("Editar", "Edit", new { /* id=item.PrimaryKey */ }) |
                @Html.ActionLink("Detalhes", "Details", new { /* id=item.PrimaryKey */ }) |
                @Html.ActionLink("Excluir", "Delete", new { /* id=item.PrimaryKey */ })
            </td>
        </tr>
    }
    
    </table>
    

    Here goes the Client Controller: Note that the ClientID is Identity at the table. So, I don't insert it.

    using System;
    using System.Collections.Generic;
    using System.Linq;

    using System.Web;

    using System.Web.Mvc; using AutocarWebConnection.Interface; using System.Domain; using System.Domain.Business; using System.Domain.Interfaces; using System.Domain.Repositories; using AutocarWeb.ViewModels; namespace AutocarWeb.Controllers { public class ClientController : Controller { private ClientBusiness clientBusiness = new ClientBusiness(); // GET: Client public ActionResult Index() { var clients = clientBusiness.ListallClients(); return View(clients); // this view is not working. It breaks. Should list all clients. } [HttpGet] public ActionResult Insert() { return View(); } [HttpPost] public ActionResult Insert(ClientViewModel model) { if (!ModelState.IsValid) { return View(model); } var client = new Client { Name = model.Name, Address = model.Address, City = model.City, County = model.County, State = model.State, Zip_Code = model.Zip_Code, CPF = model.CPF, Idnumber = model.Idnumber, email = model.email, celular_phone = model.celular_phone, home_phone = model.home_phone }; clientBusiness.Save(client); // Clients are being saved to the table. return RedirectToAction("Index"); } } }


    • Moved by CoolDadTx Friday, April 10, 2020 1:12 PM ASP.NET related
    Thursday, April 9, 2020 9:43 PM

All replies

  • ASP.NET  MVC issues can be discussed in the MVC forum in ASP.NET forums.

    http://forums.asp.net/

    Thursday, April 9, 2020 10:55 PM
  • hi DA924X,

    thank you, I didn't know where was the forum.

    best regards.

    Friday, April 10, 2020 3:49 PM