MVC 4 Razor用户控件

时间:2013-08-21 12:13:26

标签: c# asp.net-mvc-4

我想在我的MVC 4项目中创建类似用户控件的东西。我已按照this article中的说明进行操作,因此我在项目中添加了App_Code文件夹(它最初不在那里)。我在里面放了一个文件

  

VDRazorHelpers.cshtml

在该文件中,我的代码实际上是一个静态html表(我稍后会添加动态值):

@helper PropertySummary(){
    <tr>
        <td width="210" align="center" colspan="2">
            <img src="http://www.mysite.com/images/BG1.JPG" width="210" height="140" />
        </td>
    </tr>

}

然后在我看来,我尝试访问帮助者写作:

@VDRazorHelpers.PropertySummary

但这似乎不可用。

我知道我提到的文章是针对MVC3的。它改变了吗?在MVC4中使用自定义可重用html部分的正确方法是什么?

以下是intellisense的截图:

enter image description here

2 个答案:

答案 0 :(得分:5)

我更倾向于使用部分视图,您可以将其置于共享视图文件夹中,然后调用您希望使用该视图呈现的模型:

@Html.Partial("propertySummary", property)

只是一个想法

答案 1 :(得分:1)

部分视图最接近MVC中Web窗体用户控件的模拟。它们封装了可以在其他视图上重用或直接从操作方法返回的HTML,这对于需要获取某些HTML的AJAX调用很方便。 MVC的最大区别在于,部分视图在Web窗体中没有用户控件的ViewState,也没有做任何事情,它已经消失了,而且就我而言也是如此。 HTML Helper也可以被认为是接近用户控件,但它们完全基于代码并生成HTML,而部分视图是标记。