2015-02-06 36 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

相關問題