首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Razor视图引擎和ASP.NET MVC3中使用动态模型渲染局部视图

在Razor视图引擎和ASP.NET MVC3中使用动态模型渲染局部视图
EN

Stack Overflow用户
提问于 2010-10-29 06:07:34
回答 7查看 127.2K关注 0票数 66

当我尝试渲染模型类型指定为的局部视图时:

代码语言:javascript
复制
@model dynamic

通过使用以下代码:

代码语言:javascript
复制
@{Html.RenderPartial("PartialView", Model.UserProfile);}

我得到了以下异常:

代码语言:javascript
复制
'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'RenderPartial' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.

但是,.aspx文件中的相同代码可以完美地工作。有什么想法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-10-29 06:14:24

我刚刚找到了答案,似乎我放置RenderPartial代码的视图有一个动态模型,因此,MVC无法选择正确的方法。将RenderPartial调用中的模型强制转换为正确的类型修复了此问题。

来源:Using Html.RenderPartial() in ascx files

票数 55
EN

Stack Overflow用户

发布于 2011-03-19 03:43:22

与在RenderPartial调用中强制转换模型不同,由于您使用的是razor,因此可以从

代码语言:javascript
复制
@model dynamic

代码语言:javascript
复制
@model YourNamespace.YourModelType

这样做的好处是可以处理视图中的每个@Html.Partial调用,还可以为您提供属性的智能感知。

票数 26
EN

Stack Overflow用户

发布于 2010-12-10 19:42:07

也可以被调用为

代码语言:javascript
复制
@Html.Partial("_PartialView", (ModelClass)View.Data)
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4047543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档