asp.net-mvc - MVC3 ASPX View 对象不包含定义

标签 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我使用 MVC2 开始这个项目,但更改为 MVC3 dll。

我有一个 Assets 实体。在 Controller 中,我定义了详细信息 ActionResult,如下所示:
编辑:(输入正确的 Controller 代码。)

    public ActionResult Details(int id)
    {
        using (var db = new AssetsContainer())
        {
            return View(db.Assets.Find(id));
        }
    } 

My 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 上却失败了?我没有遇到开发时错误,但确实遇到了运行时错误。

最佳答案

我不确定,但看起来这就是问题所在。您正在将列表传递给 View

return View(db.Assets.ToList()); 

但是你的继承说 Inherits="System.Web.Mvc.ViewPage<CITracker.Models.Asset>"而不是

Inherits="System.Web.Mvc.ViewPage<IEnumerable<CITracker.Models.Asset>>"

而且,由于您的模型现在是 IEnumerable,因此您不能执行简单的 Model.Id,而应该是 Model[0].Id (或者您选择的任何元素或执行 foreach)

关于asp.net-mvc - MVC3 ASPX View 对象不包含定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106486/

相关文章:

asp.net-mvc - ASP.NET SimpleMembership 中密码的自定义验证

c# - Json空数组在MVC中反序列化为null

jquery - 在 MVC 3 中,使用 jQuery Validator 无法正确验证小数

asp.net-mvc-2 - 自定义错误页面不显示

linq - 在 ASP.NET MVC2 项目中使用 LINQ to SQL

c# - 将 asp.net MVC 从 5.0.0-beta2 更新到 5.0.0-rc1

c# - 找到与名为 'Home' 的 Controller 匹配的多个类型。 (奇怪的错误)

asp.net-mvc - 图书馆类(class)去哪里?

c# - MVC3 : Overriding the Model values in HTTPPost action method

asp.net-mvc-2 - 使用带有 MSpecMVC、RedirectToAction 和 ViewData 测试条件问题的 MSpec 设置测试