2015-02-13 2 views
0

Привет, У меня есть проблема. Я пытаюсь передать данные в мою базу данных. Проект mvc 4 Я установил ninject в свой проект, чтобы попытаться решить эту проблему, когда я перезапустил свой проект со всеми строками соединения пропали без вести из файла конфигурации XML, к счастью, я поддержал мой проект, и он делает правильно, однако,Не удается добавить поля данных в базу данных SQL

я до сих пор первоначальный вопрос для решения которых эта ошибка

No parameterless constructor defined for this object

Я поставил без параметров конструктор в каждый контроллер I что проблема все еще сохраняется, любые предложения были бы с благодарностью получены, поскольку я должен соответствовать сроку проекта в течение одной недели. У меня есть поле countyID в моей базе данных для параметра id в моем коде, это может быть проблемой, если мне нужно объявить это скрытое поле? Спасибо!

Мой код

Контроллер:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Configuration; 
using UnityServiceProject.Models; 


namespace UnityServiceProject.Controllers 
{ 
    public class NewAccountController : Controller 
    { 

     // 
     // GET: /NewAccount/ 

     //public ActionResult Index() 
     //{ 
     // return View(); 
     //} 

     [HttpGet] 
     public ActionResult NewAccount() 
     { 
      List<SelectListItem> listItem = new List<SelectListItem>(); 
      NewAccountModel namModel = new NewAccountModel(); 



      listItem.Add(new SelectListItem() { Value = "1", Text = "Antrim" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "2", Text = "Armagh" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "3", Text = "Carlow" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "4", Text = "Cavan" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "5", Text = "Clare" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "6", Text = "Cork" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "7", Text = "Derry" } 
     ); 
      listItem.Add(new SelectListItem() { Value = "8", Text = "Donegal" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "9", Text = "Down" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "10", Text = "Dublin" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "11", Text = "Fermanagh" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "12", Text = "Galway" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "13", Text = "Kerry" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "14", Text = "Kildare" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "15", Text = "Kilkenny" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "16", Text = "Laois" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "17", Text = "Leitrim" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "18", Text = "Limerick" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "19", Text = "Longford" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "20", Text = "Louth" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "21", Text = "Mayo" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "22", Text = "Meath" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "23", Text = "Monaghan" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "24", Text = "Offaly" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "25", Text = "Roscommon" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "26", Text = "Sligo" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "27", Text = "Tipperary" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "28", Text = "Tyrone" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "4", Text = "Waterford" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "4", Text = "Westmeath" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "4", Text = "Wexford" } 
    ); 
      listItem.Add(new SelectListItem() { Value = "4", Text = "Wicklow" } 
    ); 


      namModel.County = new SelectList(listItem, "Value", "Text"); 
      return View(namModel); 
     } 

     [HttpPost] 
     public ActionResult NewAccount(UnityServiceProject.Models.NewAccountModel newAcc) 
     { 





      if(ModelState.IsValid) 
      { 
       using (var db = new UnityServiceEntities()) 
       { 
        //create New Account entity 
        var adNewAcc = db.AddNewAccounts.Create(); 

        adNewAcc.charityName = newAcc.charityName; 
        adNewAcc.charityNumber = newAcc.charityNumber; 
        adNewAcc.addressLine1 = newAcc.addressLine1; 
        adNewAcc.addressLine2 = newAcc.addressLine2; 
        adNewAcc.City = newAcc.City; 
        adNewAcc.County = newAcc.County.SelectedValue.ToString(); 
        adNewAcc.Phone = newAcc.Phone; 
        adNewAcc.emailAddress = newAcc.Email; 
        adNewAcc.registeredPassword = newAcc.registeredPassword; 
        adNewAcc.Comments = newAcc.Comments; 

        db.AddNewAccounts.Add(adNewAcc); 
        db.SaveChanges(); 
        return RedirectToAction("Index", "Home"); 
       } 
      } 
      return View(newAcc); 
     } 
     public NewAccountController() 
     { 

     } 
    } 
} 

Модель:

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using UnityServiceProject.Models; 


namespace UnityServiceProject.Models 
{ 
    public class NewAccountModel 
    { 
     [Required] 
     [StringLength(150)] 
     [Display(Name="Charity Name: ")] 
     public string charityName { get; set; } 

     [Required] 
     [StringLength(150)] 
     [Display(Name="Charity Number: ")] 
     public string charityNumber { get; set; } 

     [Required] 
     [StringLength(100)] 
     [Display(Name="Address Line 1: ")] 
     public string addressLine1 { get; set; } 

     [Required] 
     [StringLength(100)] 
     [Display(Name="Address Line 2: ")] 
     public string addressLine2 { get; set; } 

     [Required] 
     [StringLength(100)] 
     [Display(Name="City: ")] 
     public string City { get; set; } 



     [Required] 
     [StringLength(100)] 
     [Display(Name = "Select County: ")] 
     public SelectList County { get; set; } 

     [Required] 
     [StringLength(100)] 
     [Display(Name = "Select ID: ")] 
     public SelectList countyID { get; set; } 

     [Required] 
     [StringLength(100)] 
     [Display(Name="Phone Number: ")] 
     public string Phone { get; set; } 

     [Required] 
     [EmailAddress] 
     [StringLength(150)]//'UserLogin table field' setting max amount of characters 
     [Display(Name = "Registered Email Address: ")] 
     public string Email { get; set; } 

     [Required] 
     [DataType(DataType.Password)] 
     [StringLength(200)] 
     [Display(Name = "Registered Password: ")] 
     public string registeredPassword { get; set; } 



     [StringLength(300)] 
     [Display(Name = "Comments: ")] 
     public string Comments { get; set; } 
    } 
} 

cshtml:

@model UnityServiceProject.Models.NewAccountModel 
@{ 
    ViewBag.Title = "NewAccount"; 
} 

<h2>NewAccount</h2> 

@using (@Html.BeginForm()){ 
@Html.ValidationSummary(true,"Please fill all required fields Thank You.") 
<fieldset> 
    <legend>Create Account</legend> 
    <ol> 

     <li>@Html.LabelFor(u => u.charityName)</li> 
     <li>@Html.TextBoxFor(u => u.charityName)</li> 

     <li>@Html.LabelFor(u => u.charityNumber)</li> 
     <li>@Html.TextBoxFor(u => u.charityNumber)</li> 

     <li>@Html.LabelFor(u => u.addressLine1)</li> 
     <li>@Html.TextBoxFor(u => u.addressLine1)</li> 

     <li>@Html.LabelFor(u => u.addressLine2)</li> 
     <li>@Html.TextBoxFor(u => u.addressLine2)</li> 

     <li>@Html.LabelFor(u => u.City)</li> 
     <li>@Html.TextBoxFor(u => u.City)</li> 

     <li>@Html.LabelFor(u => u.County)</li> 
     <li>@Html.DropDownListFor(model => Model.countyID, Model.County, "Select County: ", new {id = "ddlCounty"})</li> 

     <li>@Html.LabelFor(u => u.Phone)</li> 
     <li>@Html.TextBoxFor(u => u.Phone)</li> 

     <li>@Html.LabelFor(u => u.Email)</li> 
     <li>@Html.TextBoxFor(u =>u.Email)</li> 

     <li>@Html.LabelFor(u => u.registeredPassword)</li> 
     <li>@Html.TextBoxFor(u => u.registeredPassword)</li> 

     <li>@Html.LabelFor(u => u.Comments)</li> 
     <li>@Html.TextBoxFor(u => u.Comments)</li> 
     </ol> 
    </fieldset> 
    <input type="submit" value="New Account" /> 
} 

ответ

1

«Без конструктора без параметров» является обобщенным признаком того, что ваш контейнер для инъекций с зависимостями не работает должным образом. Предоставление конструктора без параметров просто замалчивает проблему, так как тогда вы фактически не используете никакой инъекции зависимостей. Вам нужно заглянуть в конфигурацию контейнера DI и исправить любые проблемы. Более того, я не могу сказать, так как вы не разместили свою конфигурацию контейнера DI.

Смежные вопросы