Asked by:
Compiling Error - Trying to insert a Client in a Asp .Net MVC Client_Index

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.
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: CS0234: The type or namespace name 'Models' does not exist in the namespace 'AutocarWeb' (are you missing an assembly reference?)
Erro de Origem:Linha 29: Linha 30: Linha 31: public class _Page_Views_Client_Index_cshtml : System.Web.Mvc.WebViewPage<IEnumerable<AutocarWeb.Models.ClientBusinessConsulting>> { Linha 32: Linha 33: #line hidden
Arquivo de Origem: C:\Users\foliv\AppData\Local\Temp\Temporary ASP.NET Files\vs\c271e5ef\5fe161e\App_Web_index.cshtml.a673969b.ekxut6e2.0.cs Linha: 31Mostrar 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.0Now I will Include de programming Code.
@model IEnumerable<AutocarWeb.Models.ClientBusinessConsulting> @{ 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> // not compiling <th> @Html.DisplayNameFor(model => model.County) </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) </td> //not compiling <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>
ClientViewModel:
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data; using System.Domain; using System.Linq; using System.Web; namespace AutocarWeb.ViewModels { public class ClientViewModel { public int ClientID { get; set; } public string Name { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string Address { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string City { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string County { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string State { get; set; } public string Zip_Code { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string CPF { get; set; } public string Idnumber { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string email { get; set; } [Required(ErrorMessage = "* Campo com preenchimento obrigatório")] public string celular_phone { get; set; } public string home_phone { get; set; } public ClientViewModel() { } public ClientViewModel(Client client) { ClientID = client.ClientID; Name = client.Name; Address = client.Address; City = client.City; County = client.County; State = client.State; Zip_Code = client.Zip_Code; CPF = client.CPF; Idnumber = client.Idnumber; email = client.email; celular_phone = client.celular_phone; home_phone = client.home_phone; } } }
ClientController
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); } [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); return RedirectToAction("Index"); } } }
Insert.cshtml
@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") }
- Moved by CoolDadTx Thursday, April 9, 2020 1:39 PM ASP.NET related
Thursday, April 9, 2020 3:00 AM
All replies
-
Try add "@using AutocarWeb.Models;" at the top of the .cshtml file.
- Edited by cheong00 Thursday, April 9, 2020 3:44 AM
Thursday, April 9, 2020 3:43 AM -
Please post questions related to MVC in the ASP.NET forums.
Michael Taylor http://www.michaeltaylorp3.net
Thursday, April 9, 2020 1:39 PM -
I'm sorry for that.
Thanks for your help.
Best regards.
Thursday, April 9, 2020 8:44 PM -
Cheong, thank you for support.
I did the changes you suggested, but it didn't work.
Do your have any other suggestion?
I'll post in ASP.NET forum to see if I get help.
Thanks for your help.
Best Regards.
Thursday, April 9, 2020 8:48 PM