首先,我是MVC的初學者。從另一個視圖訪問視圖的功能
我有一個名爲FinanceController
的控制器。我有兩個視圖名爲StoreEvaluationForm
和SendStoreEvaluationToPdf
這個控件。我想從第二個視圖調用第一個視圖的public static
函數,該函數在@functions
中定義。
我猜意見有mvc隱藏類。因爲我意識到,當我將鼠標移到第一個視圖的函數上時,VS會顯示其名稱爲_Page_Views_Finance_StoreEvaluationForm_cshtml
的類和名爲ASP的名稱空間。但是我找不到任何方法來訪問另一個視圖的功能。在第二個視圖中,ASP名稱空間只有名爲_Page_Views_Finance_SendStoreEvaluationToPdf_cshtml
的類。
要清楚,視圖中的函數是一個C#函數,而不是一個JavaScript函數。它的定義是:
@functions
{
public static string NumberFormatter(double? number, bool percent = false)
{
return number == null ? null : string.Format("{0}{1}", number.Value.ToString("N2"), percent ? "%" : null);
}
}
將共享函數移動到輔助類可能是一個更好的主意。有沒有理由不能這樣做? –
沒有理由。我也可以將它移到控制器類。但我只想知道。有沒有辦法從同一個控制器中的另一個視圖訪問視圖的功能。 –
使用MVC,視圖中應該沒有功能。要共享代碼或視圖的一部分,請創建一個局部視圖。如果它是JavaScript把它放在腳本文件中並在兩個地方引用它。 –