2013-02-05 99 views
0

在我開始之前,我知道這不是好習慣,但想知道如何(如果有的話)可以在我的視圖中定義一個方法。如何在視圖中創建方法?

進出口使用C#在ASP.Net MVC

下似乎不工作:

decimal DoCalculation(IEnumerable<MyItems> items){ 
    ... 
} 

注:我不使用剃刀視圖引擎

+0

可能的重複[如何在Razor中定義方法?](http://stackoverflow.com/questions/5159877/how-do-i-define-a-method-in-razor) –

+1

你應該真的將此代碼放入模型中。這是針對MVC電流游泳的。 – Jon

+0

http://blogs.msdn.com/b/timlee/archive/2010/07/30/using-functions-in-an-asp-net-page-with-razor-syntax.aspx – ken2k

回答

6

如果您正在使用Razor視圖引擎,你可以聲明inline functions

@functions { 
    public string DoCalculation(IEnumerable<MyItems> items) { 
     ...  
    } 
} 

,或者也可以使用inline helpers

@helper DoCalculationAndOutputResult(IEnumerable<MyItems> items) 
{ 
    foreach (var item in items) 
    { 
     <div>@item.SomeValue</div> 
    } 
} 

如果你正在使用WebForms視圖引擎:

<script type="text/C#" runat="server"> 
    public string DoCalculation(IEnumerable<MyItems> items) { 
     ...  
    } 
</script> 

顯然在視圖中編寫C#代碼與不寫任何代碼一樣糟糕。值得一提的是其他人閱讀這些內容,以免他們和你犯同樣的錯誤。

+0

但是,這不回報什麼。 – Frederiek

+0

這不是'@ helper'的語法嗎? – Jon

+0

@Jon,在Razor你有'@ functions'和'@ helper',這兩個完全不同的東西。 –