J'utilise VS 2015 et j'ai créé un projet ASP.NET MVC et ajouté quelques choses (se connecter et enregistrer a bien fonctionné avec Localdb appelé MyDatabase.mdf
) qui a fonctionné.ASP.NET MVC CRUD avec LocalDb savechanges erreur
CRUD créer seulement la fonction en db le reste viendra plus tard.
Mais maintenant je ne peux pas obtenir ce travail. A l'intérieur du localdb appelé MyDatabase.mdf
, j'ai créé une autre table appelée Amsterdam
:
[MyDatabase.mdf] [1]
Et voici ma MainDbContext.cs
- ici j'ai ajouté
public DbSet<Amsterdam> Amsterdam { get; set; }
Et dans mon Home
dossier que j'ai écrit Amsterdam.cshtml
comme ceci:
@model IEnumerable<MyFirstWebsite.Models.Amsterdam>
@{
ViewBag.Title = "Amsterdam";
var username = User.Identity.Name;
}
<h2>@username's Bestellijst Amsterdam</h2>
@using (Html.BeginForm())
{
<span>Enter new item: </span>
<br/>
<input type="text" name="new_item"/>
<br/>
<span>Public post?</span>
<input type="checkbox" name="check_public"/><br/>
<br/>
<input type="submit" value="Add Item"/>
}
<br/>
<table class="table table-bordered table-condensed">
<thead>
<tr>
<th style="text-align: center;">Id Bestelling</th>
<th style="text-align: center;">Details Bestelling</th>
<th style="text-align: center;">Time - Ontvangen Bestelling</th>
<th style="text-align: center;">Time - Verzonden Bestelling</th>
<th style="text-align: center;">Edit</th>
<th style="text-align: center;">Delete</th>
<th style="text-align: center;">Public Post</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">
<a href="@Url.Action("Edit", "Home")/">Edit</a>
</td>
<td style="text-align: center;">
<a href="@Url.Action("Delete", "Home")/">Edit</a>
</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
Et dans mon Models
dossier que je créé Amsterdam.cs
qui ressemble à ceci:
namespace MyFirstWebsite.Models
{
public class Amsterdam
{
[Key]
public int Id { get; set; }
public string Details { get; set; }
public string Date_Posted { get; set; }
public string Time_Posted { get; set; }
public string Date_Edited { get; set; }
public string Time_Edited { get; set; }
public string Public { get; set; }
public int User_Id { get; set; }
}
}
Et dans mon dossier Controllers
mon HomeController
ressemble à ceci:
public ActionResult Amsterdam()
{
return View();
}
[HttpPost]
public ActionResult Amsterdam(Amsterdam list)
{
string timeToday = DateTime.Now.ToString("h:mm:ss tt");
string dateToday = DateTime.Now.ToString("M/dd/yyyy");
if (ModelState.IsValid)
{
using (var db = new MainDbContext())
{
Claim sessionEmail = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email);
string userEmail = sessionEmail.Value;
var userIdQuery = db.Users.Where(u => u.Email == userEmail).Select(u => u.Id);
var userId = userIdQuery.ToList();
var dbAmsterdam = db.Amsterdam.Create();
dbAmsterdam.Details = list.Details;
dbAmsterdam.Date_Posted = dateToday;
dbAmsterdam.Time_Posted = timeToday;
dbAmsterdam.User_Id = userId[0];
db.Amsterdam.Add(dbAmsterdam);
db.SaveChanges();
}
}
else
{
ModelState.AddModelError("", "Incorrect format has been placed");
}
return View();
}
Je sais que je suis proche parce que mon registre ne fonctionne pas mais je ne peux pas obtenir mon CRUD pour Amsterdam
pour fonctionner. Lorsque je clique sur ok comme indiqué sur la capture d'écran (quand je clique sur le point de l'annonce):
https://i.stack.imgur.com/XsGws.png
Je reçois une erreur
DbUpdateException était non gérée par le code utilisateur
https://i.stack.imgur.com/I6kYP.png
Il dit également "Voir l'exception intérieure". As tu ? Ça dit quoi ? – Shyju
{"Nom d'objet invalide 'dbo.Amsterdams'."} – DjRossoreTV
'db.Amsterdam.Create()'? Qu'est-ce que ça fait? – Shyju