ASP.NET MVC C # - передача данных из контроллера в класс - PullRequest
0 голосов
/ 17 января 2019

У меня есть две библиотеки классов, одна для моего "внутреннего" кода, а другая для стороны проекта, связанной с WebInterface.

Я передаю две переменные (UserId и EnvId), используя Ajax / Jquery, моему контроллеру на стороне WebInterface моего проекта. Затем мне нужно передать два значения из Var в другую библиотеку классов, чтобы запустить несколько методов для разблокировки учетных записей пользователей.

Ниже приведен код из моего контроллера (код здесь в настоящее время отправляет сообщения console.log обратно в браузер, чтобы я знал, что получаю правильные идентификаторы)

[HttpPost]
    public ActionResult UnlockUserAction(string UserId, string EnvId)
    {
        var user = UserId;
        var environment = EnvId;

        if (user == "" || user == "0")
        {

            return Json("Error - The User doesn't exist or there was an error", JsonRequestBehavior.AllowGet);
        }
        else
        {
            //pass userid & envid to UnlockUser Class will go here
            var result = user + " | " + environment;
            return Json(result, JsonRequestBehavior.AllowGet);
        }
    }

Это мой код из библиотеки классов "backend";

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace UserImportInterfaceLibrary
{
    public class UnlockUser
    {
    //Get Environment SQL
    public string sql = "SELECT Server,Catalog,UserName,UserPwd FROM tbl_Environments WHERE Description = @environment";
    //Unlock User String
    public string unlockSQL = "UPDATE User_Account_Data SET Account_Locked = 0 WHERE User_ID = @userid";

    public void getEnvironment(EnvId)
    {
        var envData = EnvId;
    }
}  

}

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Вам нужно определить функцию в вашем классе, которая будет получать параметр, который вам нужен, например:

public void MyFunction(MyParameter){ //do anything with your parameter here }

И тогда в вашем контроллере вам нужно создать объект вашего класса, например:

var user = new UnlockUser();

Наконец, вы можете вызвать функцию вашего класса в контроллере

user.MyFunction(MyParameter);
0 голосов
/ 17 января 2019

Вы можете сделать это несколькими способами. Либо в конструкторе вашей библиотеки классов, либо используйте ее в качестве службы, создав конструктор без параметров с методом, который выполняет вашу логику.

В идеальном решении я бы рекомендовал разбить ваш код на три проекта. Тот, который получает доступ к вашим данным и получает все, что вам нужно. Тот, который обрабатывает всю вашу логику с данными, полученными от уровня данных. Наконец, ваш проект MVC, который имеет дело только с уровнем логики.

Чтобы ответить на ваш вопрос сейчас:

public class UnlockUser
{
     public UnlockUser(string user, string env)
     {
         //Do logic with params
     }

}

В вашем контроллере добавьте:

    else
    {
        //pass userid & envid to UnlockUser Class will go here
        var foo = new UnlockUser(userId, envId);
        var result = user + " | " + environment;
        return Json(result, JsonRequestBehavior.AllowGet);
    }

ИЛИ:

Добавьте в ваш класс конструктор без параметров и метод, который принимает ваши параметры и выполняет некоторую логику. Используйте это так:

public class UnlockUser
{
     public UnlockUser()
     { }
     public <YourResultObject> <YourNewMethod> (string userId, string envId)
     {
          //Do some logic
          return <YourResultObject>;
     }
}

В вашем методе контроллера:

var foo = new UnlockUser();
foo.YourNewMethod(userId, envId);`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...