2012-04-05 12 views
1

Dies ist die Ansicht Code, wird diese Ansicht eine Liste von preInscription Demande zeigen und mit zwei Tasten Valide und Delete der erste es Webmaster Um Inscription und den seconde eines bis Refuse Demande zu ermöglichen.Einfügen von Daten in My DB Probleme

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<J2V.Models.preinscrit>>" %> 
// some Html Code 
<% foreach (var item in Model) { %> 
      <li> 
      <div class="listinfo"> 
       <h3> 
        <%: Html.DisplayFor(modelItem => item.Nag) %> 
       </h3> 
        <p> 
         <%: Html.DisplayFor(modelItem => item.Idag) %> 

        </p> 
        <span class="price"> <%: Html.DisplayFor(modelItem => item.Adrag) %> <%: Html.DisplayFor(modelItem => item.Vilag) %> <%: Html.DisplayFor(modelItem => item.Gov) %></span> <span class="media">Tel : <%: Html.DisplayFor(modelItem => item.Telag) %> |</span> <%: Html.DisplayFor(modelItem => item.Mailag) %> 
        </div> 
        <div class="listingbtns"> 
        <span class="listbuttons"><%: Html.ActionLink("Valide", "Valide", new {mod= item}) %> |</span> 
        <span class="listbuttons"><%: Html.ActionLink("Supprime", "Delete", new { id=item.Idag }) %></span> 
        </div> 
        <div class="clear"> 
        &nbsp; 
        </div> 
       </li> 
    <% } %> 

Dies ist die „Valide“ Aktion, um Validate preinscription zu ermöglichen und Daten zu Agence Tabelle und Benutzertabelle hinzu:

[HttpGet] 
public ActionResult Valide(Models.preinscrit model) 
{ 

     var db = new Models.J2VEntities(); 
     Models.agence ag = new Models.agence(); 
     Models.user user = new Models.user(); 
     ag.Adrag = model.Adrag ; 
     ag.Gov = model.Gov ; 
     ag.Idag = model.Idag; 
     ag.Mailag = model.Mailag; 
     ag.Nomag = model.Nag; 
     ag.Vilag = model.Vilag; 

     user.IsAdmin = false; 
     user.iduser = model.Idag; 
     user.password = Models.LogModel.register.CreateRandomPassword(); 

     db.AddTouser(user); 
     db.AddToagence(ag); 
     return View("index"); 
} 

Wenn ich auf Valide auf meiner Ansicht Seite klicken bekomme ich diesen Fehler:

System.NullReferenceException

an dieser Linie ag.Adrag = model.Adrag ;

+0

Sie müssen Ihr Formular in Aussicht. Könnten Sie Vollansichtscode schreiben? –

+0

Schau, ich habe meinen Beitrag aktualisiert – Chlebta

+0

Ich sehe Änderungen nicht. –

Antwort

0

keine Notwendigkeit zu verwenden Form in der anderen Seite Abfrage übergeben. Verwenden Sie actionlink, um item.id zu senden.

<span class="listbuttons"><%: Html.ActionLink("Valide", "Valide", new {id= item.id}) %> |</span> 

und id in valide Aktion erhalten und das Modell in der Datenbank erhalten, indem item.id

public ActionResult Valide(int id) 
{ 

    var db = new Models.J2VEntities(); 
    Models.agence ag = new Models.agence(); 
    Models.user user = new Models.user(); 

    //select from databese by id and valide 

    ag.Adrag = model.Adrag ; 
    ag.Gov = model.Gov ; 
    ag.Idag = model.Idag; 
    ag.Mailag = model.Mailag; 
    ag.Nomag = model.Nag; 
    ag.Vilag = model.Vilag; 

    user.IsAdmin = false; 
    user.iduser = model.Idag; 
    user.password = Models.LogModel.register.CreateRandomPassword(); 

    db.AddTouser(user); 
    db.AddToagence(ag); 
    return View("index"); 
} 

dieser Code von meinem Projekt ist:

//select list by id 
    public IEnumerable<makale> select_makaleler_by_kategori(int kategori_id) 
    { 
     IEnumerable<makale> makale = (from m in entity.makale 
             where m.kategori_id == kategori_id 
             orderby m.olusturma_tarihi 
             select m).ToList<makale>(); 

     return makale; 
    } 

    //select one element by id 
    public makale select_makale(int makale_id) 
    { 
     makale makale = (from m in entity.makale 
         where m.makale_id == makale_id 
         select m).SingleOrDefault(); 

     return makale; 
    } 
+0

Ich benutze Data Entity Framework So bin ich wundernd, wie man Suchabfrage erstellt? ein bißchen, bitte. – Chlebta

+0

Ich habe ein Beispiel aus meinem Projekt hinzugefügt. –

+0

http://code.msdn.microsoft.com/windowsdesktop/101-LINQ-Samples-3fb9811b –

0

Sie Action aus dem falschen Grund verwenden, ist es nicht für die Weitergabe von Daten verwendet wird, sollten Sie eine <form> machen und es dann <input type='submit' />

das Problem tritt auf, weil der dritte Parameter mit einreichen in die ActionLink() die Routing-Werte, die mit den Routing-Regeln funktioniert, es ist nicht für das Senden von Daten verwendet i der Benutzer denken


aus dem Codebeispiel etwas die Sicht nur knapp sein Ziel geben Sie bitte zur Darstellung der Seite

wenn das der Fall ist, dann übergeben Sie einfach eine ID an den ActionLink und in der Action-Controller Abfrage erneut alle Informationen aus der Datenbank mit der ID

hängen nie Parameter beim Übergang zur Darstellung Zweck von Seite zu Seite verwendet, ein Hacker kann, wenn man leicht brechen Ihre App

so Informationen wollen von dem Benutzer nicht nur die ID dann wieder

+0

Und wie geht das? Wo finde ich die '

' – Chlebta