2010-10-20 2 views
0

В настоящее время я работаю над учебником MVC Music Store. Я застрял на странице 53 в данный момент, и мне было интересно, может ли кто-нибудь помочь мне.MVC Ошибка: 'object' не содержит определения для ''

Я в настоящее время получают следующие две ошибки:

'object' does not contain a definition for 'Artists'

'object' does not contain a definition for 'Genres'

Я думаю, что я смотрел на него слишком долго, и теперь я не могу определить свою ошибку. Свежая пара глаз может сделать трюк!

Вот файл ASPX, в котором происходит ошибка:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMovies1.ViewModels.StoreManagerViewModel>" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
Edit 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2>Edit</h2> 
    <% using (Html.BeginForm()) 
     { %> 
     <%: Html.ValidationSummary(true)%> 

    <fieldset> 
     <legend>Edit Album</legend> 
     <%: Html.EditorFor(model => model.Album, 
      new object{ Artists = Model.Artists, Genres = Model.Genres }) %> 

      <p><input type="submit" value="Save" /></p> 


    </fieldset> 

     <% } %> 

</asp:Content> 

А вот класс, что эта страница должна быть звонок из, так сказать:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using MvcMovies1.Models; 

namespace MvcMovies1.ViewModels 
{ 
    public class StoreManagerViewModel 
    { 
     public Album Album { get; set; } 
     public List<Artist> Artists { get; set; } 
     public List<Genre> Genres { get; set; } 
    } 
} 

PS - Я понимаю, некоторые из моих имен - MvcMovies1, я назвал это по ошибке, но все ссылается соответственно.

ответ

3

Заменить:

new object{ Artists = Model.Artists, Genres = Model.Genres } 

С:

new { Artists = Model.Artists, Genres = Model.Genres } 

Другими словами, вы хотите создать новый анонимный тип. Ваш синтаксис выше фактически пытается создать новый голой object и присваивать значения несуществующим свойствам на object: «Художники» и «Жанры».

+1

+1 - Эта ошибка, как правило, вызвана intellisense, которая вставляет слово «объект», когда вы нажимаете пробел после слова «новый». Единственная известная работа вокруг: 1) Не забудьте удалить ее, 2) введите «new {» без пробела (она добавит пробел, когда вы получите закрытие «}». – Fenton

+0

СПАСИБО! Это было чувство intelli и я думаю, что я искал что-то более сложное! Я буду отмечать это как правильный ответ, как только истечет срок! – 109221793

+0

@ Сонни, это было проклятием моей жизни в течение долгого времени! – DaveDev

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