2011-09-28 45 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

更新了我的答案,但我猜测是因为您没有在问题中发布任何视图或模型代码。 –

相关问题