【发布时间】:2013-10-17 01:18:36
【问题描述】:
我使用 MVC2 开始这个项目,但更改为 MVC3 dll。
我有一个资产实体。在控制器中,我将 Details ActionResult 定义如下:
编辑:(输入正确的控制器代码。)
public ActionResult Details(int id)
{
using (var db = new AssetsContainer())
{
return View(db.Assets.Find(id));
}
}
我的 Details.aspx 页面是这样定义的:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CITracker.Models.Asset>" %>
<%@ Import Namespace="CITracker.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Details</h2>
<fieldset>
<legend>Fields</legend>
<div class="display-label">Id</div>
<div class="display-field"><%: Model.Id %></div>
我得到这个错误:
CS1061: 'object' does not contain a definition for 'Id' and no extension method 'Id' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
任何想法为什么这适用于 MVC2 但在 MVC3 上失败?我没有遇到开发时错误,但确实遇到了运行时错误。
【问题讨论】:
-
您发送
IEnumerable<Asset>并期望在视图中收到Assest -
检查您的拼写并确保您的模型实际上包含 Id 属性。
-
是的,资产实体包含 ID。
标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2