2011-09-28 7 views
1

설명 :이 요청을 처리하는 데 필요한 리소스를 컴파일하는 동안 오류가 발생했습니다. 다음 특정 오류 정보를 검토하고 소스 코드를 적절히 수정하십시오.부분 양식을 구현하려고 할 때 'DinnerForm'형식 또는 네임 스페이스 이름이 'NerdDinner.Models'네임 스페이스에 없습니다.

컴파일러 오류 메시지 : CS0234 : 형식 또는 네임 스페이스 이름 'DinnerForm은'NerdDinner.Models '(당신이 어셈블리 참조가 누락?) 네임 스페이스에 존재하지 않는

소스 오류 :

라인 170 :
선 171 : System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()] 선 172 : 공용 클래스 views_dinners_create_aspx : System.Web.Mvc.ViewPage, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler { 라인 173 :
줄 174 : 개인 정적 bool @__initialized;

DinnerFormViewModel.cs :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using NerdDinner.Controllers; 



namespace NerdDinner.Models 
{ 
public class DinnerFormViewModel 
{ 
    // Properties 
    public Dinner Dinner { get; private set; } 
    public SelectList Countries { get; private set; } 

    // Constructor 
    public DinnerFormViewModel(Dinner dinner) 
    { 
     Dinner = dinner; 
     Countries = new SelectList(PhoneValidator.Countries, dinner.Country); 
    } 
} 
} 

DinnerForm.ascx :

<%@ Control Language="C#"  Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Controllers.DinnerFormViewModel>" %> 

<%= Html.ValidationSummary("Please correct the errors and try again.") %> 

<% using (Html.BeginForm()) { %> 

<fieldset> 
<p> 
<label for="Title">Dinner Title:</label> 
<%= Html.TextBox("Title", Model.Dinner.Title) %> 
<%=Html.ValidationMessage("Title", "*") %> 
</p> 
<p> 
<label for="EventDate">Event Date:</label> 
<%= Html.TextBox("EventDate", Model.Dinner.EventDate) %> 
<%= Html.ValidationMessage("EventDate", "*") %> 
</p> 
<p> 
<label for="Description">Description:</label> 
<%= Html.TextArea("Description", Model.Dinner.Description) %> 
<%= Html.ValidationMessage("Description", "*") %> 
</p> 
<p> 
<label for="Address">Address:</label> 
<%= Html.TextBox("Address", Model.Dinner.Address) %> 
<%= Html.ValidationMessage("Address", "*") %> 
</p> 
<p> 
<label for="Country">Country:</label> 
<%= Html.DropDownList("Country", Model.Countries) %>    
<%= Html.ValidationMessage("Country", "*") %> 
</p> 
<p> 
<label for="ContactPhone">Contact Phone #:</label> 
<%= Html.TextBox("ContactPhone", Model.Dinner.ContactPhone) %> 
<%= Html.ValidationMessage("ContactPhone", "*") %> 
</p> 

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

<% } %> 

DinnersControllers.cs (create 메소드)

// 
// GET: /Dinners/Create 

    public ActionResult Create() 
    { 

     Dinner dinner = new Dinner() 
     { 
      EventDate = DateTime.Now.AddDays(7) 
     }; 
     return View(new DinnerFormViewModel(dinner)); 
    } 

    // 
    // POST: /Dinners/Create 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(Dinner dinner) 
    { 

     if (ModelState.IsValid) 
     { 

      try 
      { 
       dinner.HostedBy = "SomeUser"; 

       dinnerRepository.Add(dinner); 
       dinnerRepository.Save(); 

       return RedirectToAction("Details", new { id = dinner.DinnerID }); 
      } 
      catch 
      { 
       foreach (var issue in dinner.GetRuleViolations()) 
       { 
        ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage); 
       } 

       return View(new DinnerFormViewModel(dinner)); 
      } 
     } 

     return View(new DinnerFormViewModel(dinner)); 
    } 

Create.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<NerdDinner.Models.DinnerForm>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
Host A Dinner 
</asp:Content> 

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

<h2>Host a Dinner</h2> 

<% Html.RenderPartial("DinnerForm"); %> 
</asp:Content> 
+0

당신은 자세한 내용은 남자를 제공해야 할 것입니다. 내 말은 .. 그건 아무것도 아닌 것 같아. – Chance

+0

제공 할 다른 항목이 확실하지 않습니다. 그 오류는 내가 받았던거야? 그 밖의 무엇을 알고 싶니? –

+2

오류가있는 것으로 보이는보기/저녁/create.aspx를 제공하십시오. 또한 NerdDinners.Models.Dinner 또는 그 cs 파일의 이름이 무엇이든 게시하십시오. – Chance

답변

1

DinnerForm.ascx :

Inherits="System.Web.Mvc.ViewUserControl<NerdDinner.Models.DinnerFormViewModel> 
+0

아니지만 그것들은 내가 복사 한 DinnerFormViewModel입니다. 그 클래스에서 참조가 누락 되었습니까? –

+0

dinnerform 부분보기를 만들었고 dinnerformviewmodel을 상속받습니다 –

+0

내 대답이 업데이트되었지만 질문에보기 또는 모델 코드를 게시하지 않았기 때문에 추측하고 있습니다. –

관련 문제