2010-10-28 55 views
0

我这样做:Html.RenderParial,如何传递和使用模型?

<% Html.RenderPartial("SomePartial", Model); %> 

我的模型有一个属性的用户ID

在我的部分我试试这个:

<%= Model.UserID%>

,但我得到此错误:

CS1061:'object'不包含'UserID'的定义,也没有扩展方法'UserID'接受a类型“对象”的第一个参数可以找到(是否缺少using指令或程序集引用?)

回答

2

Blankman,

确保您的局部ASCX文件模型定义为每个主视图,即:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Your.Model>" %> 

[编辑] - 如Stefanvds以下提到,如果你只需要从模型中的ID部分,然后定义你的部分为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<int>" %> 

这将是最终我想:)

欢呼

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>" %> 
0

模型类型上的局部视图,你在传递给Html.RenderPartial方法模型应该匹配。

1

确保在您的局部视图的顶部你有你的Control标记设置为模型的类型Inherits属性你正在传递:

Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.MyStronglyTypedModel>" 
相关问题