【问题标题】:How to use .cs Class DataFunctions Inside MVC Controller Classes如何在 MVC 控制器类中使用 .cs 类 DataFunctions
【发布时间】:2015-04-06 04:17:45
【问题描述】:

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

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
}
}
}

我的控制器类

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();
        }

    }
}

我想在我的控制器类中调用“public string check()”方法,可以吗? ,我是mvc的新手,请帮我解决这个问题。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    你可以简单地在你的 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

    【讨论】:

      【解决方案2】:

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

      答案可能如下所示:

      public ActionResult XYZ_Checklist()
      {
          var assignValues = new AssignValues();
          var result = assignValues.check();
      
          // Do something here with the result ...
      
          return View();
      }
      

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

      希望这会有所帮助!

      【讨论】:

      • 什么是 var assignValues= New Assignvalues();方法 ? AssignValues 是一个类,那么我们如何做到这一点?可能吗?如果我错了,请纠正我
      • var assignValues = new AssignValues();是一个简单的语句,它从您的示例中实例化 AssignValues 类(位于 xyz.abc 中)并将其分配给名为 assignValues 的变量。
      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-15
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多