Asp.net mvc 如何将@helper函数转换为我调用的局部视图?

Asp.net mvc 如何将@helper函数转换为我调用的局部视图?,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我在~/App_Code下的Helpers.cshtml文件中有这个@helper函数: @helper TempCost(Decimal cost) { @: @String.Format("{0:C0}", cost) } 在我看来,我会这么用: @Helpers.TempCost(Model.PriceInformation.MyPrice) priceformation是我的模型,MyPrice是(十进制)中的一个属性 现在我想把这个助手放在它自己的局部视图中。我可以调用partia

我在~/App_Code下的Helpers.cshtml文件中有这个@helper函数:

@helper TempCost(Decimal cost)
{
@: @String.Format("{0:C0}", cost)
}
在我看来,我会这么用:

@Helpers.TempCost(Model.PriceInformation.MyPrice)
priceformation
是我的模型,
MyPrice
是(十进制)中的一个属性

现在我想把这个助手放在它自己的局部视图中。我可以调用partial视图并毫无问题地传递参数。但是,我不知道如何让部分视图中的代码工作

我试过这样的方法:

@{
decimal cost;
}
@String.Format("{0:C0}", cost)
但是我得到了以下错误:

错误CS0165:使用未分配的局部变量“成本”

对不起,不是专业的程序员。感谢您的帮助。

请尝试以下方法:

在用户控件中

@model decimal
@string.Format("{0:C0}", Model)
打电话

@Html.Partial("yourusercontrol", Model.PriceInformation.MyPrice)

这适用于常规MVC项目。谢谢现在我试图让它在Orchard模块中工作,但使用@model时出现错误,因为它需要一个IShapeProxy。你有没有想过如何在没有模型的情况下做到这一点,并保持成本的使用?我很抱歉。我对乌节一无所知。你可以在你的问题上添加适当的标签,以获得其他人的回答。在我的场景中,这是有效的,Orchard将是一个奖励。谢谢