我这样做:
<% Html.RenderPartial("SomePartial", Model); %>
我的模型有一个属性UserID
在我的部分中,我试试这个:
&lt;%= Model.UserID%&gt;
但是我收到了这个错误:
CS1061:'object'不包含'UserID'的定义,并且没有扩展方法'UserID'接受类型'object'的第一个参数可以找到(你是否缺少using指令或汇编引用?)< / p>
答案 0 :(得分:2)
Blankman,
确保您的部分ascx文件根据主视图定义模型,即:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Your.Model>" %>
[edit] - 正如Stefanvds在下面提到的,如果您只需要模型中的id部分,那么将您的部分定义为:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<int>" %>
这将是我认为的确定性:)
欢呼声
答案 1 :(得分:1)
确保在部分视图的顶部,您的Inherits
标记的Control
属性设置为您传入的模型类型:
Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.MyStronglyTypedModel>"
答案 2 :(得分:0)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DB.Models.TheModelYouWantToSend>" %>
你的部分应该从这开始。
另外,如果你想发送整个模型,你不需要指定它。
<% Html.RenderPartial("SomePartial"); %>
或者您只想发送ID。
<% Html.RenderPartial("SomePartial", Model.UserID); %>
会产生标题
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<int>" %>
答案 3 :(得分:0)
部分视图上的模型类型和传递给Html.RenderPartial方法的模型应匹配。