使用@ Html.Partial渲染usercontrol(cshtml)

时间:2011-06-20 18:13:41

标签: asp.net-mvc asp.net-mvc-3 user-controls

我正在接触MVC 3并且很困惑我如何在我的项目中使用UserControl。

我创建了一个名为UserControl.cshtml的usercontrol(cshtml)文件,我正在尝试将其呈现为Products.cshtml。

MyUserControl.cshtml位于共享文件夹中。

在Products.cshtml中:

<div>
    @Html.Partial("MyUserControl.cshtml");
</div>

但是我收到了这个错误。我不知道为什么要搜索.ascx文件。:

The partial view 'MyUserControl.cshtml' was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Products/MyUserControl.cshtml.aspx
~/Views/Products/MyUserControl.cshtml.ascx
~/Views/Shared/MyUserControl.cshtml.aspx
~/Views/Shared/MyUserControl.cshtml.ascx

这是在mvc 3中呈现usercontrol的正确方法吗?

- 更新 -

这很有效。

@RenderPage("../Shared/MyUserControl.cshtml")

2 个答案:

答案 0 :(得分:14)

您无需指定文件扩展名,视图引擎将处理该文件扩展名。

@Html.Partial("MyUserControl")

答案 1 :(得分:2)

Phil haack在使用Partial页面的过程中有很棒的博客。

http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx