2015-02-06 50 views
1

我有一个asp.net web应用程序,现在我试图将其转换为ASP.NET MVC。问题是我的旧项目有一些.cs类我,例如一个类处理所有用户数据操作,一个处理数据库操作,一个将处理一些优先级属性,如...我已经包括这些类在mvc项目中,我已经创建一个名为Project_Class的新文件夹并将所有类复制到它,我的问题是如何访问mvc控制器类中的这些类,如何在mvc控制器类中调用此类的函数。如何在MVC控制器类中使用.cs类DataFunctions

I had include a sample .cs class structure below 

**class1.cs** 

using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Configuration; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Data.SqlClient; 
using System.Xml; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

namespace xyz.abc 
{ 
    public class AssignValues:SSS 
    { 
     Process Objdb; 
     SqlCommand sqlcom; 
     SqlConnection sqlcon; 

     private int _EId; 
     private int _CId; 
     XmlDocument PXML, OutputXML; 
     XmlElement Root, ParameterElement, InputParamIdNode, OperatorIdNode, OutputParamIdNode, OutputParamValueNode, ConditionStatusNode, ModeNode, InputTypeNode, OutputTypeNode, InputRegisterIdNode, InputRegisterHeaderIdNode, OutputRegisterIdNode, OutputRegisterHeaderIdNode, UIdNode, orderNode; 

     public int iCount = 0; 
     public int EId 
     { 
      set 
      { 
       _EId = value; 
      } 
      get 
      { 
       return _EId; 
      } 
     } 
     public int CId 
     { 
      set 
      { 
       _CId = value; 
      } 
      get 
      { 
       return _CId; 
      } 
     } 
     public AssignValues() 
     { 

     } 
     public AssignValues(SqlCommand SqlComm,SqlConnection SqlConn) 
     { 
      Objdb = new Process(); 

      sqlcom=SqlComm; 
      sqlcon = SqlConn; 
     } 

    public string check() 
{ 
string x="hai"; 
return x 
} 
} 
} 

我Controller类

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using XYZ.ABC.Controllers; 
using XYZ.ABC; 

namespace XYZ.ABC.Controllers 
{ 
    public class XYZ_Controller :Controller 
    { 

     public ActionResult XYZ_Checklist() 
     { 
      return View(); 
     } 

    } 
} 

我想打电话给 “公共字符串检查()” 方法在我的控制器类,这可能吗? ,我是mvc的新手,请帮我解决这个问题。

回答

0

你可以简单地调用,在你的MVC控制器类

按照以下步骤

1)包含在MVC控制器类的类的命名空间

2)在你的MVC控制器继承老班

Public Class MVCCOntrollerclassname: Class1 

3)创建的.cs类的对象

class1 c=new class1(); 

4)创建MVC控制器类的构造函数

MVCCOntrollerclassname() 
     { 
      c.methodname(); 

     } 

注意:您说您要迁移到asp.net MVC的,所以如果你有任何ASP。 net dll然后必须将其更改为MVC Compitable dll

+0

哇谢谢它的作品。 – 2015-02-06 05:54:40

0

MVC框架只是实例化您的控制器类,并调用使用某些定义的配置或约定的操作方法。因此,考虑到这一点,问问自己,如果您自己实例化控制器并调用XYZ_Checklist(),我将如何调用此方法。

答案可能是这个样子:

public ActionResult XYZ_Checklist() 
{ 
    var assignValues = new AssignValues(); 
    var result = assignValues.check(); 

    // Do something here with the result ... 

    return View(); 
} 

这是短期和简单的答案。一旦你开始理解这个框架并不神奇,并且只是简单地调用你的代码,你就可以开始研究更好的方式来安排你的代码(IoC/DI等)。

希望这会有所帮助!

+0

什么是var assignValues =新的Assignvalues();意味着? AssignValues是一个类,那么我们该如何做到这一点?可能吗?纠正我,如果我错了 – 2015-02-06 04:58:00

+0

var assignValues = new AssignValues();是一个简单的语句,它从您的示例中实例化AssignValues类(位于xyz.abc中),并将其分配给名为assignValues的变量。 – 2015-02-06 17:19:02

相关问题