2011-09-28 107 views
1

說明:編譯服務此請求所需的資源時發生錯誤。請查看以下具體的錯誤細節並適當修改您的源代碼。嘗試實施部分表單時,名稱空間'NerdDinner.Models'中不存在類型或名稱空間名稱'DinnerForm'

編譯器錯誤信息: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 @__初始化;

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(創建方法)

// 
// 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

更新了我的答案,但我猜測是因爲您沒有在問題中發佈任何視圖或模型代碼。 –

相關問題