2012-04-05 44 views
0

DinnerController我收到了一个数据。 enter image description hereNerdDinner MVC和Html.Encode

public ActionResult Details(int id) 
{ 

      Dinner dinner = dinnerRepository.GetDinner(id); 

      if (dinner == null) 
       return View("NotFound"); 
      else 
       return View("Details", dinner); 
    } 

details.aspx我必将像这样。

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2> 
     Details</h2> 
    <fieldset> 
     <legend>Fields</legend> 
     <p> 
      DinnerID: 
      <%= Html.Encode(Model.DinnerID) %> 
     </p> 
     </fieldset> 
</asp:Content> 

但我得到一个错误。

Compiler Error Message: CS1061: 'object' does not contain a definition for 'DinnerID' and no extension method 'DinnerID' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

我刚刚开始学习mvc并无法理解问题。可能我错过了些什么.Plz有帮助吗?

回答

0

我忘了检查复选框Create a strongly-typed view当创建一个视图显示我得到这个error.i通过details.aspx页面添加<HelloMvc.Models.Dinner>解决这个问题。 意思是我得到这样的错误代码。

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

解决后的问题代码becames:

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

感谢reply.I后这个答案以供将来参考。

0

你就错了做几件事情:
1)这就是所谓的MVC意味着模型视图控制器(你的晚餐实体通过控制器传递给你的看法)
你所想说明的是一个新的视角。它将在您的项目的视图部分创建。

我觉得这个代码可以告诉你,你需要什么:

@model HelloMvc.Models.Dinner //passing the value of dinner is done here . from now on you will refer to the dinner object with Model 
<table> 
     <tr> 
     <td> 
      Description 
     </td> 
     <td> 
      @Html.Display(Model.Description) //google other @Html diplay modes (Label Textbox, etc) 
     </td> 
     </tr> 
</table> 

MVC可以在第一很难,特别是如果你开发了一个Asp.Net思维;请耐心等待,并首先了解基本概念,然后您会喜欢它。
以下链接将帮助您了解整个过程。
http://geekswithblogs.net/dotNETvinz/archive/2011/06/03/asp.net-mvc-3-creating-a-simple-sign-up-form.aspx