Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试将MySQL表显示为cshtml_C#_Mysql_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 尝试将MySQL表显示为cshtml

C# 尝试将MySQL表显示为cshtml,c#,mysql,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Mysql,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我一直试图显示一个MySQL表,但它告诉我它需要一个数据源,所以我尝试了grid.DataSource=UserList等。似乎什么都不起作用 [HttpPost] public ActionResult Search(Models.SearchModel user) { List<Models.SearchModel> UserList = new List<Models.SearchModel>(); MySqlConnection connect

我一直试图显示一个MySQL表,但它告诉我它需要一个数据源,所以我尝试了
grid.DataSource=UserList等。似乎什么都不起作用

[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);
}
[HttpPost]
公共操作结果搜索(Models.SearchModel用户)
{
List UserList=新列表();
MySqlConnection=DBConnect.getconnection();//设置与数据库的连接
MySqlCommand cmd=newmysqlcommand(“GetUsers”,connection);//搜索名为“GetData”的过程
cmd.CommandType=CommandType.storedProcess;
cmd.Parameters.Add(新的MySqlParameter(“?search”,MySqlDbType.VarChar));//搜索参数,如果不查找任何内容,则获取所有数据
cmd.Parameters[“?search”]。Value=“%”+“+”+“%”;
cmd.Parameters[“?search”].Direction=ParameterDirection.Input;
MySqlDataReader dr=cmd.ExecuteReader();//告诉程序读取数据
while(dr.Read())
{
intid=Convert.ToInt16(dr[“id”]);
string user_name=Convert.ToString(dr[“user_name”]);//将数据转换为字符串
Models.SearchModel UserMod=新Models.SearchModel(id,用户名);
添加(UserMod);
}
dr.Close();//Close
DBConnect.CloseConnection(连接);//关闭连接
返回视图(“搜索”,用户列表);
}
在cshtml页面上,我有以下代码:

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

我从未使用过
WebGrid
,但从您上面的观点来看,您没有正确地将
模型传递给它。你的观点应该是:

@model IEnumerable<AOSExpress.Models.SearchModel>
<div>
@{
    // Notice the removal of the @ symbol
    var grid = new WebGrid(Model);        
}
@grid.GetHtml()
</div>
@model IEnumerable
@{
//请注意删除了@符号
var grid=新的WebGrid(模型);
}
@grid.GetHtml()
Razor中的
@{…}
表示一个代码块,
@
只输出它的前缀。在这种情况下,当您试图将
Model
作为参数传递给
WebGrid
构造函数,而不是输出
Model
的内容时,不需要在其前面加上
@
符号