在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
并且无法理解这个问题。我可能错过了什么.Plz帮助?
答案 0 :(得分: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思想;要有耐心并且首先要理解基本概念,你会喜欢它。答案 1 :(得分:0)
我在创建视图时忘记勾选复选框Create a strongly-typed view
我收到此错误。我通过在<HelloMvc.Models.Dinner>
页面中添加details.aspx
来解决此问题。
意味着当我收到这样的错误代码时。
<%@ 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>" %>
感谢您的回复。我发布此ans以供将来参考。