如何重用.cshtml文件中定义的mvc asp.net函数?

时间:2013-11-27 18:34:00

标签: c# asp.net-mvc razor code-reuse

我还是MVC的新手,我正在试图弄清楚如何创建在.cshtml文件中生成的函数,并将它们移到中心位置,以便可以重用它们。

例如,使用DevExpress库创建网格和弹出窗口。这是网格的列定义:

    settings.Columns.Add( column => {
        column.ColumnType = MVCxGridViewColumnType.TextBox;
        column.Caption = "Samples";
        column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
        column.CellStyle.HorizontalAlign = HorizontalAlign.Center;
        column.SetDataItemTemplateContent( Content => ViewContext.Writer.Write(
            GeneratePopup( "Samples"
                         , DataBinder.Eval( Content.DataItem , "SampleHTML" ).ToString()
                         , "Samp" + DataBinder.Eval( Content.DataItem , "Row" ).ToString()
                         , (bool)DataBinder.Eval( Content.DataItem , "ShowSample" ) , 750 , (string)DataBinder.Eval( Content.DataItem , "SampleCount" ) )
        ) );
    } );

在其中调用“GeneratePopup”,该文件在.cshtml文件中定义为:

@functions {
    private string GeneratePopup(string aTitle , string aString , string aID , bool aShow , int aWidth , string aSuffix ) {

效果很好。除此之外,其中有许多功能我想以其他形式重用,我不想在整个地方复制GeneratePopup。

如何创建GeneratePopup的中央可重用版本?

1 个答案:

答案 0 :(得分:5)

您应该将帮助程序移动到App_Code目录中的单独CSHTML文件 然后,您可以从任何视图将其称为静态方法。

请参阅this blog postmy in-depth explanation