2013-10-04 3 views
1

나는 MySQL 테이블을 표시하려고했지만 데이터 소스가 필요하다는 것을 알려 주므로 grid.DataSource = UserList; 등을 시도해 본 결과 아무 것도 작동하지 않는 것 같습니다. 나는 다음과 같은 코드를 가지고있는 cshtml 페이지 cshtml로 MySQL 테이블을 표시하려고 시도

[HttpPost] 
public ActionResult Search(Models.SearchModel user) 
{ 

    List<Models.SearchModel> UserList = new List<Models.SearchModel>(); 

    MySqlConnection connection = DBConnect.getconnection(); // setting connection to database 
    MySqlCommand cmd = new MySqlCommand("GetUsers", connection); // search for procedure called "GetData" 
    cmd.CommandType = CommandType.StoredProcedure; 

    cmd.Parameters.Add(new MySqlParameter("?search", MySqlDbType.VarChar)); // search parameters, if not looking for anythinf gets all the data 
    cmd.Parameters["?search"].Value = "%" + "" + "%"; 
    cmd.Parameters["?search"].Direction = ParameterDirection.Input; 

    MySqlDataReader dr = cmd.ExecuteReader(); // telling program to read Data 
    while (dr.Read()) 
    { 
     int id = Convert.ToInt16(dr["ID"]); 
     string user_name = Convert.ToString(dr["user_name"]); // converting data to a string 

     Models.SearchModel UserMod = new Models.SearchModel(id, user_name); 

     UserList.Add(UserMod); 

    } 

    dr.Close(); // close 

    DBConnect.CloseConnection(connection); // closes connection 

    return View("Search", UserList); 
} 

:

@model IEnumerable<AOSExpress.Models.SearchModel> 
<div> 
@{ 
    var grid = new WebGrid(@Model);   
} 
@grid.GetHtml() 
</div> 

답변

0

나는 위의보기에서, WebGrid을 사용하지 있지만, 적이, 당신은 그것을 제대로 Model을 통과 아닙니다. 보기는해야한다 : 면도기에서

@model IEnumerable<AOSExpress.Models.SearchModel> 
<div> 
@{ 
    // Notice the removal of the @ symbol 
    var grid = new WebGrid(Model);   
} 
@grid.GetHtml() 
</div> 

@{ ... }는 코드 블록을 나타내며, @은 단순히 접두사있어 어떤 출력합니다. 이 경우 ModelWebGrid 생성자에 매개 변수로 전달하려고 시도 할 때 Model의 내용을 출력하지 않고 접두사로 @ 기호를 추가 할 필요가 없습니다.

관련 문제