【问题标题】:NerdDinner MVC and Html.EncodeNerdDinner MVC 和 Html.Encode
【发布时间】:2012-04-05 11:02:18
【问题描述】:

DinnerController我得到了一个数据。

 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 并无法理解问题。我可能遗漏了什么。请帮助?

【问题讨论】:

    标签: asp.net-mvc model-view-controller nerddinner


    【解决方案1】:

    你做错了几件事:
    1) 它被称为 MVC,意思是模型视图控制器(您的晚餐实体通过您的控制器传递给您的视图)
    你想要做的是一个新的 View 。它将在项目的视图部分中创建。

    我认为这段代码可能会告诉你你需要什么:

    @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

    【讨论】:

      【解决方案2】:

      我忘记选中复选框Create a strongly-typed view 创建视图时出现此错误。我通过在details.aspx 页面中添加&lt;HelloMvc.Models.Dinner&gt; 来解决此问题。 表示当我收到这样的错误代码时。

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

      解决问题后代码变成:

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

      感谢您的回复。我发布此答案以供将来参考。

      【讨论】:

        猜你喜欢
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多