Попытка отправить данные из actionmethod в статический метод в MVC - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь отправить данные из метода ActionResult Index в статический метод PopulatePlant в MVC, но при отправке я получаю сообщение об ошибке:

имя не существует в текущем контексте.

В основном в методе HttpPost я получаю значение в Tempdata ["EmpId"], и теперь я хочу опубликовать это значение вместе со значением, возвращаемым из PopulatePlant () в представлении "MasterPage".

Но сначала как отправить значение в TempData ["EmpId"] внутри статического метода PopulatePlant ()?

[HttpPost]
public ActionResult Index(FormData person)
{
 TempData["EmpId"] = person.EmpId.ToString();
 FormData Detail = new FormData();
 Detail.PlantName = PopulatePlant();       
 return View("MasterPage");
}

private static List<SelectListItem> PopulatePlant()
{
    List<SelectListItem> PName = new List<SelectListItem>();
    String connectionString = ConfigurationManager.ConnectionStrings["conndbprodnew"].ConnectionString;
    OracleConnection connection = new OracleConnection(connectionString);
    OracleCommand command = new OracleCommand("select nvl(count(1),0) from Tdc_Product1 where TDC_NO=:COLUMN1", connection);
    command.CommandType = CommandType.Text;
    command.Parameters.AddWithValue(":COLUMN1", TempData["EmpId"]);
    return PName;
}

Любая идея будет оценена.

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете просто передать значение своему методу в качестве параметра так же, как вы передавали бы данные между методами и объектами в любой программе:

[HttpPost]
public ActionResult Index(FormData person)
{
 FormData Detail = new FormData();
 Detail.PlantName = PopulatePlant(person.EmpId.ToString()); //pass the relevant value to the method (using TempData is not really needed here)
 return View("MasterPage");
}

private static List<SelectListItem> PopulatePlant(string empId) //declare that the method will receive a string parameter
{
    List<SelectListItem> PName = new List<SelectListItem>();
    String connectionString = ConfigurationManager.ConnectionStrings["conndbprodnew"].ConnectionString;
    OracleConnection connection = new OracleConnection(connectionString);
    OracleCommand command = new OracleCommand("select nvl(count(1),0) from Tdc_Product1 where TDC_NO=:COLUMN1", connection);
    command.CommandType = CommandType.Text;
    command.Parameters.AddWithValue(":COLUMN1", empId); //use the method's parameter
    return PName;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...