MVC中的model为null

时间:2014-01-19 19:49:15

标签: asp.net-mvc c#-4.0 razor

我想在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指南。 感谢

2 个答案:

答案 0 :(得分:2)

因为您从View

返回Controller时未通过模型
return View();

在这里,您应该传递ViewModelIEnumerable<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,因此您应该重写代码的一部分以使其正常工作。