当我尝试在数据库中抛出某些内容时,它就不会进入数据库。
我试图调试它,根本没有任何东西。
create.cshtml
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label>E-Mail</label>
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control input-lg", placeholder = "Skriv email", } })
@Html.ValidationMessageFor(model => model.Email)
</div>
</div>
</div>
UsersAccount.cs(型号)
namespace MentorOrdblind_MVC.Models.Konto
{
public class UsersAccount
{
[Key]
public int UserId { get; set; }
[Display(Name = "EmailAddress")]
[DataType(DataType.EmailAddress)]
[Required(ErrorMessage="Husk at skriv en email!")]
public string Email { get; set; }
}
}
KontoController.cs(Controller)
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateUsers(UsersAccount UsersAccount)
{
if (ModelState.IsValid)
{
var CreateAnAccount = db.Users.FirstOrDefault(b => b.Email == UsersAccount.Email);
if (CreateAnAccount == null)
{
CreateAnAccount.Email = UsersAccount.Email;//email
db.Users.InsertOnSubmit(CreateAnAccount);
db.SubmitChanges(); // save
RedirectToAction("login", "KontoController");
}
else
{
ViewBag.MessageError = "Denne brugere findes i vores system.";
}
}
return View();
}
直到它完全没有错误,但是数据库中没有公开,如果我把它留空,则不会写错误消息!
我怎么可能没有进入数据库。和yes表格写的确实等,但把它扔进数据库。
答案 0 :(得分:1)
var CreateAnAccount = db.Users.FirstOrDefault(b => b.Email == UsersAccount.Email);
表示您使用该电子邮件找到第一个User
。你的下一行代码是
if (CreateAnAccount == null)
这意味着如果找到了用户,那么将永远不会调用此代码块中的代码,因此您永远不会将任何内容保存到数据库中。另一方面,如果没有找到用户,那么if
块
CreateAnAccount.Email = UsersAccount.Email;
会抛出NullReferenceException
,因为CreateAnAccount
为null
,您无法访问null
的属性。
将您的代码更改为
var CreateAnAccount = db.Users.FirstOrDefault(b => b.Email == UsersAccount.Email);
if (CreateAnAccount != null)
{
....
答案 1 :(得分:0)
试试这个:
//Why this
var server = require ("socket.io");
var io = new server ();
// Why not this
var server = require ("socket.io");
var io = server ();
或更好
if (CreateAnAccount == null)
{
CreateAnAccount = new UsersAccount();
....
修改强>
if (CreateAnAccount == null)
{
// should just content into the database.
db.Users.InsertOnSubmit(UsersAccount);
// must save the contents.
db.SubmitChanges(); // save
...