2013-08-21 71 views
0

我想在我的MVC 4项目中创建类似用户控件的东西。我按照this article中的说明操作,所以我在项目中添加了App_Code文件夹(它最初并不存在)。在内心里,我已经把文件MVC 4剃刀用户控件

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部分的正确方法是什么?

这里是智能感知的截图:

enter image description here

+0

我希望你通过在视图中使用using语句来包含命名空间。 –

+0

@Nitin我必须以某种方式在助手文件中定义命名空间吗?我尝试使用MyNamespace添加;在我想使用助手的视图中,但这并没有帮助... –

回答

5

我会更倾向于使用它你可以在共​​享视图放置局部视图文件夹,然后调用传递要用来渲染模型这一观点:

@Html.Partial("propertySummary", property) 

只是一个想法

+0

你能举个例子吗?我对MVC非常陌生。我应该在我的视图文件夹中创建一个新的视图,只有tr代码和调用? –

+0

通过共享他指的是/ Views/Shared文件夹。 – asymptoticFault

+0

谢谢,它工作... –

1

局部视图是最接近幅F的类似物Orms MVC中的用户控件。它们封装了可以在其他视图上重用的HTML或直接从操作方法返回的HTML,这对于需要获取某些HTML的AJAX调用很方便。 MVC的巨大差异在于,就我而言,部分视图在Web窗体中没有用户控件的视图状态,也没有任何内容,它消失了,并且很好地解决了问题。 HTML Helpers也可以被认为接近用户控件,但它们完全基于代码并生成HTML,而部分视图是标记。