我是MVC的新手,我完全陷入了模型验证异常。
我想使用Entity框架从数据库表中检索数据。我使用visual Studio 2012和Sqlexpress作为数据库服务器。这是我到目前为止所做的
现在我总是在MobileContorller类中得到模型验证异常。即使我为表和模型提供了相同的列名。我无法弄清楚究竟是什么引起了这个异常。 表移动设备是
Model int NotNull 输入nchar(10)NotNull 成本nchar(10)NotNull
为了方便我已经考虑了角色的成本。 移动模型类
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace Mvcpractice4.Models
{
[Table("Mobiles")]
public class Mobile
{ public int Model { get; set; }
public string Type { get; set; }
public String Cost { get; set; }
}
}
MobilesContorller
namespace Mvcpractice4.Controllers
{
public class MobilesController : Controller
{
public ActionResult Details(int id)
{
MobilesContext pc = new MobilesContext();
List<Mobile> plist = pc.productsproperty.ToList();
return View(plist);
}
}
}
MobilesContext类
namespace Mvcpractice4.Models
{
public class MobilesContext:DbContext
{
public DbSet<Mobile> productsproperty { get; set; }
}
}
详细信息视图
@model IEnumerable< Mvcpractice4.Models.Mobile>
@using Mvcpractice4.Models;
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<ul>@foreach(Mobile obj in @Model)
{
<li>
@obj.Model
</li>
<li>
@obj.Type
</li>
<li>
@obj.Cost
</li>
}
</ul>
Web.Cofig文件中的连接字符串为
<connectionStrings>
<add name="MobilesContext" connectionString="server=.\sqlexpress;database=Gadgets;integrated Security=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
答案 0 :(得分:0)
根据对similar post的回答,我猜想实体框架需要一个密钥 - 表中数据库中的主键。
rmdir /s /q "%userprofile%\Documents\IISExpress"