Asp.net mvc MVC3 ASPX视图对象不包含定义
我使用MVC2启动了这个项目,但改为MVC3 dll 我有一个资产实体。在控制器中,我有如下定义的详细操作结果:Asp.net mvc MVC3 ASPX视图对象不包含定义,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 2,我使用MVC2启动了这个项目,但改为MVC3 dll 我有一个资产实体。在控制器中,我有如下定义的详细操作结果: 编辑:(输入正确的控制器代码。) My Details.aspx页面的定义如下: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<CITracker.Models.Asset>" %>
编辑:(输入正确的控制器代码。) 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>
你知道为什么这在MVC2中起作用,但在MVC3中却失败了吗?我没有得到开发时间错误,但我得到运行时错误。我不确定,但看起来这就是问题所在。您正在将列表传递给视图
return View(db.Assets.ToList());
但是你的继承人说
Inherits=“System.Web.Mvc.ViewPage”
而不是
Inherits="System.Web.Mvc.ViewPage<IEnumerable<CITracker.Models.Asset>>"
Inherits=“System.Web.Mvc.ViewPage”
而且,由于您的模型现在是IEnumerable,您不能使用简单的模型.Id,而应该使用模型[0].Id(或者您选择的元素或使用foreach的元素)这是一个老问题,但我在将一些MVC 2代码转换为MVC 3时遇到了同样的问题。要查找的一个简单配置问题是确保配置中有此应用程序设置:
<appSettings>
<add key="enableSimpleMembership" value="false" />
</appSettings>
了解更多信息。您似乎发送了IEnumerable
,并希望在视图中获得Assest
检查拼写,确保您的模型实际包含Id属性。是的,资产实体包含Id。很抱歉,粘贴了错误的代码。正如你现在看到的,我正在返回Find(id)的结果以获取详细信息。你能不能放一个断点,看看视图上的模型对象到底是什么??
Inherits="System.Web.Mvc.ViewPage<IEnumerable<CITracker.Models.Asset>>"
<appSettings>
<add key="enableSimpleMembership" value="false" />
</appSettings>