2015-07-12 76 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