簡體   English   中英

沒有為此對象定義無參數構造函數-MVC項目

[英]No parameterless constructor defined for this object - MVC project

我試圖創建沒有實體框架的MVC項目,但出現此錯誤。 沒有為此對象定義無參數構造函數。 我在C#中還很陌生,希望獲得一些幫助。 這是我的代碼:首先是Movies.cs模型

    using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace MyMovies.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
        public string Rating { get; set; }
    }

    public interface IMovieRepository
    {
        IEnumerable<Movie> Get();

    }

    public class MovieDBRepository : IMovieRepository
    {
        public IEnumerable<Movie> Get()
        {
            string connectionString = "Connection";
            using (var conn = new SqlConnection(connectionString))
            using (var cmd = conn.CreateCommand())
            {
                conn.Open();
                cmd.CommandText = "SELECT ID, Title, Date, Genre, Rating";
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        yield return new Movie
                        {
                            ID = reader.GetInt32(reader.GetOrdinal("ID")),
                            Title = reader.GetString(reader.GetOrdinal("name")),
                            ReleaseDate = reader.GetDateTime(reader.GetOrdinal("ReleaseDate")),
                            Genre = reader.GetString(reader.GetOrdinal("Genre")),
                            //Price = reader.GetFloat(reader.GetOrdinal.("Price")),
                            Rating = reader.GetString(reader.GetOrdinal("Rating"))
                        };
                    }
                }
            }
        }
    }
}

這是控制器

using MyMovies.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MyMovies.Controllers
{
    public class MovieController : Controller
    {



        private readonly IMovieRepository repository;
            public MovieController(IMovieRepository repository)
            {
                this.repository = repository;
            }
            // GET: Movie
            public ActionResult Index()
            {
                var movie = this.repository.Get();
                return View(movie);
            }


            }
    }

如果沒有注冊依賴項注入框架,則不能在控制器的構造函數中指定參數。

更改此:

        public MovieController(IMovieRepository repository)
        {
            this.repository = repository;
        }

        public MovieController()
        {
            this.repository = new MovieDBRepository();
        }

或設置依賴項注入引擎,例如Unity,Ninject或fFastInjector。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM