创建控制器不起作用

时间:2012-09-25 15:17:25

标签: asp.net-mvc asp.net-mvc-3 scaffolding

我正在从w3schools学习asp.net mvc3并遵循该教程。http://w3schools.com/aspnet/mvc_models.asp在“ASP.NET MVC模型”一节中,我创建了这样的模型。

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

namespace MvcDemo.Models
{
    public class MovieDB
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Director { get; set; }
        public DateTime Date { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<MovieDB> Movies { get; set; } 
    }
}

然后我打算根据说明添加一个控制器。

  • 在Solution Explorer中,右键单击Controllers文件夹,然后选择Add and Controller 将控制器名称设置为MoviesController
  • 使用实体框架
  • 选择模板:具有读/写操作和视图的控制器
  • 选择模型类:MovieDB(McvDemo.Models)
  • 选择数据上下文类:MovieDBContext(McvDemo.Models) *
  • 选择视图Razor(CSHTML)
  • 点击添加

但我遇到的问题是下拉列表没有显示要选择的Model Class和Data Context Class中的MovieDB(McvDemo.Models)。谁能帮帮我吗?感谢。

2 个答案:

答案 0 :(得分:2)

你应该能够重新编译(Shift-Ctrl-B),然后再试一次 - 它会在那里。否则你总是可以在空白视图的顶部自己声明它,但这不会提供生成器所做的脚手架:

@model MvcDemo.Models.MovieDB;

答案 1 :(得分:0)

我重新编译但是这并没有为我解决问题,是的,我正在做同样的事情并遇到了同样的问题。对我来说问题是由于可视化Web开发人员无法连接到我的Movies数据库。我不得不在web.config中改变我的connectionString的定义,如下所示:

<add name="MovieDBContext"connectionString="Data Source=c:\sites\w3schools_demo\MvcDemo2\MvcDemo2\App_Data\Movies.sdf" providerName="System.Data.SqlServerCe.4.0"/>

如果您遇到此问题,则需要更改“数据源”路径以指向您的Movies.sdf数据库文件。