我想在MVC中的表行和列中选择*数据。当我这样做时,我的模型总是为空。我正在使用ADO.NET EDM。
我的动作控制器代码:
public ActionResult SellerView1(string Seller)
{
KeywinTest_Project1.tblSeller sellerName = new tblSeller();
SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=KeywinDB;Integrated Security=True;Pooling=False");
string query = "Select * from tblSeller";
SqlCommand cmd = new SqlCommand(query, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
ViewBag.Name = dt.Rows[0]["sellerName"].ToString();
}
return View();
}
我的观看代码:
@model IEnumerable<KeywinTest_Project1.tblSeller>
@using System.Web.UI.WebControls;
@{
ViewBag.Title = "SellerView1";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<body>
<table>
@Model = @ViewBag.Name
@foreach (var item in Model)
{
<tr>
<td>
@item.sellerName
</td>
</tr>
}
</table>
</body>
我的模型代码:
using System;
using System.Collections.Generic;
public partial class tblSeller
{
public int id { get; set; }
public string sellerName { get; set; }
}
我ve done is, i
将我的视图声明为我的EDM生成的模型类。
我在这里做错了什么? PLZ指南。 感谢
答案 0 :(得分:2)
因为您从View
Controller
时未通过模型
return View();
在这里,您应该传递ViewModel
,IEnumerable<KeywinTest_Project1.tblSeller>
,
像这样(来自例子):
var sellerList = dt.AsEnumerable()
.Select(d => new tblSeller { sellerName = d["sellerName"].ToString() })
.ToList();
return View(sellerList);
答案 1 :(得分:0)
您没有将模型传递给View,如下所示:
return View(sellerName);
但是sellerName
对象不是IEnumerable
,因此您应该重写代码的一部分以使其正常工作。