我正在做一个非常基本的MVC 4项目。我有一个简单的模型和一个dbcontext。我试图从表单中获取输入并使用dbcontext保存它。
这是我的代码, 在控制器中
public ActionResult FormShow(Models.bullseye sampbe)
{
if (ModelState.IsValid)
{
var db = new bullseyeDataContext();
db.bullseyes.Add(sampbe);
db.SaveChanges();
return RedirectToAction("FormShow");
}
return FormShow();
}
在dbcontext
中public class bullseyeDataContext : DbContext
{
public DbSet<bullseye> bullseyes { get; set; }
static bullseyeDataContext()
{
Database.SetInitializer(new DropCreateDatabaseAlways<bullseyeDataContext>());
}
}
连接字符串是
<add name="MvcFourFirstTouch.Models.bullseyeDataContext"
connectionString="Data Source=(LocalDb)\v11.0;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MvcFourFirstTouch.Models.bullseyeDataContext.mdf" providerName="System.Data.SqlClient" />
当我提交表单时,我获得了密钥attachdbfilename的无效值。问题出在哪里?
答案 0 :(得分:0)
<强>更新强>
问题在于您的连接字符串。 AttachDBFileName
不喜欢您为其指定的值。可能是数据库名称的问题,或LocalDB的问题,或者路径中是否缺少/存在额外的\
。
但是,如果您没有明确的理由使用AttachDBFileName
,那么我建议将AttachDbFileName=[...].mdf
替换为Initial Catalog=yourDBName
。如果以这种方式发布,你可以避免很多:)