2015-12-21 3 views
0

Я немного новичок в C#, и мне кажется, что мне трудно назначить значение списку, который я создал в контроллере. Я пытаюсь присвоить значение класса repo, возвращающего значение списка.Невозможно назначить возвращаемое значение из другого класса

сообщение Я получаю

Там не аргумент, учитывая, что соответствует требуемой формальных параметров «клиент» из «Repo.SearchClient (ClientInfo)»

мой контроллер:

public ActionResult SearchResult() 
    { 
     Repo repo = new Repo(); 
     List<ClientInfo> searchResult = new List<ClientInfo>(); 
     searchResult = repo.SearchClient(); // error here 
     JsonResult result = new JsonResult(); 
     result.Data = searchResult; 
     result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; 
     return result; 
    } 

Мой класс репо, который возвращает значение списка

public List<ClientInfo> SearchClient(ClientInfo client) 
    { 
     var clientName = client.clientName; 
     List<ClientInfo> clientResult = new List<ClientInfo>(); 
     using (SqlConnection conn = new SqlConnection(connectionString)) 
     { 
      conn.Open(); 
      try 
      { 
       SqlCommand command = new SqlCommand("SELECT * FROM Table_1 WHERE ClientName [email protected]", conn); 
       command.Parameters.AddWithValue("@clientName", clientName); 
       SqlDataReader reader = command.ExecuteReader(); 

        while (reader.Read()) 
        { 
         ClientInfo data = new ClientInfo(); 
         data.clientName = reader["ClientName"].ToString(); 
         data.clientNumber = reader["ClientNumber"].ToString(); 
         data.clientType = reader["ClientType"].ToString(); 
         clientResult.Add(data); 
        }      
      } 
      catch 
      { 
       throw; 
      } 
     } 
     return clientResult; 
    } 

My Model

namespace ClientSearch.Models 
{ 
    public class ClientInfo 
    { 
     public string clientName { get; set; } 

     public string clientNumber { get; set; } 

     public string clientType { get; set; } 
    } 
} 
+1

Вашего метода Repo требует параметра «ClientInfo клиента», но вы не поставляете это. –

ответ

3

Ваш метод поиска клиента требует ClientInfo в качестве параметра.

public List<ClientInfo> SearchClient(ClientInfo client) // required parameter 

Действие в вашем контроллере не предусматривает этого при вызове метода.

List<ClientInfo> searchResult = new List<ClientInfo>(); 
    searchResult = repo.SearchClient(); // no parameter 

Это даст ошибку при компиляции.

Чтобы это исправить, нужно сделать что-то вроде:

var clientInfo = new ClientInfo() 
    { 
     ClientName = "test client" 
    }; // create a new ClientInfo object 

var clientList = SearchClient(clientInfo); // call the search method and assign the results to a list 
Смежные вопросы