2015-07-12 77 views
0

我是C#MVC的新手。我正在嘗試創建一個類,我可以放置所有可重用的函數,並且希望能夠從我的控制器和模型中調用這些函數。是否有可能這樣做?如何從C#MVC中的控制器/模型調用外部函數?

這裏是我的項目文件夾結構:

enter image description here

所以我創建了一個助手文件夾,裏面我有一個commonFunctions類。 現在我有一個函數在裏面。

namespace myProject.Helpers 
{ 
    public class CommonFunctions 
    { 
     public static string GenerateSHA(string sString) 
     { 
      string result = ""; 
      SHA1 sha = new SHA1CryptoServiceProvider(); 
      byte[] password = sha.ComputeHash(Encoding.Default.GetBytes(sString)); 
      result = Encoding.Default.GetString(password); 
      return result; 
     } 
    } 
} 

我想從我的模型中調用該函數。我該怎麼做?

在此先感謝。

+0

CommonFunctions文件的BuildAction是否設置爲'Compile'? – Maarten

回答

1

您可以方便地調用像這樣的功能:

var sha = Helpers.CommonFunctions.GenerateSHA("Your String"); 

或者你可以添加using聲明,稱沒有命名空間規範的功能,每次:

using myProject.Helpers; 

// And somewhere in your classes 
var sha = CommonFunctions.GenerateSHA("Your String"); 
+0

它不工作。我得到錯誤:名稱空間'myProject'中不存在類型或名稱空間名稱'Helpers'(您是否缺少程序集引用?) – Diwas

+0

您提供了項目結構的屏幕截圖,它似乎包含模型和幫助程序。如果你的模型在不同的項目中,那麼你需要添加對這個程序集的引用。此外,似乎「myProject」僅僅是一個名字,你不用透露你的真實項目的名字。請在這裏複製粘貼一些代碼表格時將其更改回 –

1

正是這樣的直接調用:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace myProject.Models 
{ 
    public class YourViewModel 
    { 
     public YourViewModel() 
     { 

      //This is the constructor of the class 
      //Call the function you need 
      var tVar = Helpers.CommonFunctions.GenerateSHA("String to process"); 

     } 
    } 
} 
+0

它不起作用。 – Diwas

+0

它顯示什麼?! – Ala

+0

名稱空間「myProject」中不存在類型或名稱空間名稱'Helpers'(是否缺少程序集引用?) – Diwas