Я пытаюсь следовать этому руководству http://www.pluralsight -training.net / microsoft / Players / PSODPlayer.aspx? Author = scott-allen & name = mvc3-building-data-i & mode = live & clip = 0 & course = aspdotnet-mvc3 -intro (часть 3, код стоит первым), но я следовал за ним как раб.
Теперь я установил версию MSDN, так что это Visual Studio Ultimate, а не Web-разработчик Express 2010, как он использует, и мне интересно, что единственная причина этого не работает? Потому что тогда я просто установлю это.
Я получаю эту ошибку при попытке получить доступ к сайту, который должен использовать базу данных
Server Error in '/' Application.
Value cannot be null.
Parameter name: key
Description: An unhandled exception occurred during the
выполнение текущего веб-запроса.
Пожалуйста, просмотрите трассировку стека для более
информация об ошибке и где
он возник в коде.
Exception Details: System.ArgumentNullException: Value
не может быть нулевым.
Имя параметра: ключ
Source Error:
Line 15:
Line 16:
Line 17: @foreach (var item in Model)
Line 18: {
Line 19: @item.Title
Source File: c:\Users\Mech0z\Documents\Visual
Студия
2010 \ Projects \ FirstWeb \ FirstWeb \ Views \ Галерея \ Index.cshtml
Линия: 17
Stack Trace:
Мой код:
ConnectionString:
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="GalleryDb"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;initial catalog=GalleryDb"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Изображение модели
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace FirstWeb.Models
{
public class Picture
{
public int ID { get; set; }
public string Title { get; set; }
public string Path { get; set; }
public List<Comment> Comments { get; set;}
public int ConcertYear { get; set; }
public HttpPostedFileBase File { get; set; }
public string UploadBy { get; set; }
}
}
Мой контроллер
namespace FirstWeb.Controllers
{
public class GalleryController : Controller
{
GalleryDb _db = new GalleryDb();
//
// GET: /Gallery/
public ActionResult Index()
{
var model = _db.Pictures;
return View(model);
}
И моя галерея DB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace FirstWeb.Models
{
public class GalleryDb : DbContext
{
public DbSet<Picture> Pictures { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Picture> GetPictures()
{
return Pictures;
}
public void AddPicture(Picture model)
{
Pictures.Add(new Picture
{
Title = model.Title,
Path = model.Path,
Comments = new List<Comment>(),
ConcertYear = model.ConcertYear
});
}
}
}
У меня есть несколько дополнительных методов, которые не работают, что является просто чем-то, когда я использовал временные данные без SQL
Но, как я уже сказал, я не могу подключиться к БД так, как он это делает (набрав \ sqlexpress и набрав GalleryDb в качестве имени), и это выдает мне ошибку
Но база данных должна работать, поскольку я могу создать пользователя и войти в систему в любой момент