{"id":55000144,"date":"2018-08-01T00:00:00","date_gmt":"2020-03-27T19:33:39","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=144"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"RazorPages_Daten_aus_LookupTabellen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/","title":{"rendered":"Razor-Pages: Daten aus Lookup-Tabellen"},"content":{"rendered":"<p><b>Im Artikel &#8220;Razor Pages mit Datenbankanbindung&#8221; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer &Uuml;bersichtliste anzeigen, Details bearbeiten, neue Datens&auml;tze anlegen und vorhandene Datens&auml;tze &auml;ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew&auml;hlt werden. Eine kleine Schaltfl&auml;che neben dem Nachschlagefeld soll es dann erm&ouml;glichen, die Lookup-Daten zu bearbeiten.<\/b><\/p>\n<h2>Lookup-Entit&auml;t hinzuf&uuml;gen<\/h2>\n<p>Im Artikel <b>EDM: 1:n-Beziehungen per Code First<\/b> erfahren Sie im Detail, wie Sie 1:n-Beziehungen zwischen zwei Entit&auml;ten aufbauen.<\/p>\n<p>F&uuml;r den vorliegenden Artikel wollen wir der bisher verwendeten Klasse <b>Customer <\/b>eine weitere Klasse namens <b>Salutation <\/b>hinzuf&uuml;gen, die wir dazu im Ordner <b>Models <\/b>anlegen:<\/p>\n<pre>public class Salutation {\r\n     public int ID { get; set; }\r\n     public string Name { get; set; }\r\n     public ICollection&lt;Customer&gt; Customers { get; set; }\r\n}<\/pre>\n<p>Um die Beziehung zwischen den beiden Klassen herzustellen, f&uuml;gen wir der Klasse <b>Customer <\/b>auch noch zwei Elemente hinzu:<\/p>\n<pre>public class Customer {\r\n     public int ID { get; set; }\r\n     public string FirstName { get; set; }\r\n     public string LastName { get; set; }\r\n     public string Street { get; set; }\r\n     public string Zip { get; set; }\r\n     public string City { get; set; }\r\n     public int SalutationID { get; set; }\r\n     public Salutation Salutation { get; set; }\r\n}<\/pre>\n<p>Schlie&szlig;lich f&uuml;gen wir die neue Klasse noch als <b>DbSet <\/b>zur Klasse <b>CustomerManagementContext <\/b>im Verzeichnis <b>Data <\/b>hinzu:<\/p>\n<pre>public class CustomerManagementContext : DbContext {\r\n     ...\r\n     public DbSet&lt;Customer&gt; Customers { get; set; }\r\n     public DbSet&lt;Salutation&gt; Salutations { get; set; }\r\n     ...\r\n}<\/pre>\n<p>Danach &uuml;bernehmen Sie die &Auml;nderungen durch das Absetzen der folgenden beiden Anweisungen in der Paket-Manager-Konsole in die Datenbank, die in der Verbindungszeichenfolge der Datei <b>appsettings.json <\/b>angegeben ist:<\/p>\n<pre>Add-Migration Init\r\nUpdate-Database<\/pre>\n<p>Um die Datenbank frisch anzulegen, l&ouml;schen Sie die Datenbank zuvor aus dem SQL Server-Objekt-Explorer und entfernen auch alle Eintr&auml;ge im Verzeichnis <b>Migrations <\/b>im Projektmappen-Explorer.<\/p>\n<h2>Daten hinzuf&uuml;gen<\/h2>\n<p>Und damit beim Starten der Anwendung und beim Initialisieren auch noch ein paar Daten in der Tabelle <b>Salutations <\/b>landen und das Feld <b>Salutation <\/b>der Datens&auml;tze der Tabelle <b>Customers <\/b>mit Werten aus der Tabelle <b>Salutations <\/b>gef&uuml;llt wird, passen wir auch noch die Methode <b>Initialize <\/b>in der Klasse <b>DbInitializer <\/b>an:<\/p>\n<pre>public class DbInitializer {\r\n     public static void Initialize(CustomerManagementContext dbContext) {\r\n         dbContext.Database.EnsureCreated();\r\n         if (dbContext.Customers.Any()) {\r\n             return;\r\n         }\r\n         var salutations = new Salutation[] {\r\n             new Salutation { Name = \"Herr\" },\r\n             new Salutation { Name = \"Frau\" },\r\n             new Salutation { Name = \"Firma\" }\r\n         };\r\n         foreach (Salutation s in salutations)             {\r\n             dbContext.Salutations.Add(s);\r\n         }\r\n         var customers = new Customer[] {\r\n             new Customer{FirstName=\"Andr&eacute;\", LastName=\"Minhorst\", Street=\"Borkhofer Str. 17\", Zip=\"47137\", \r\n                 City=\"Duisburg\", Salutation=salutations[0] }, ...\r\n         };\r\n         foreach (Customer c in customers) {\r\n             dbContext.Customers.Add(c);\r\n         }\r\n         dbContext.SaveChanges();\r\n     }\r\n}<\/pre>\n<p>Diese legt nun zuerst einige Anreden an, bevor die Kunden mit dem jeweiligen Verweis auf die Anrede mit dem namens <b>Herr <\/b>hinzugef&uuml;gt werden. Danach speichert die Methode die hinzugef&uuml;gten Elemente mit der <b>SaveChanges<\/b>-Methode.<\/p>\n<h2>Anzeigen der Anreden in der &Uuml;bersicht der Kunden<\/h2>\n<p>Als Erstes wollen wir die Seite <b>Pages|Customers|Index.cshtml <\/b>so anpassen, dass sie die Anrede der Kunden anzeigt. Dazu f&uuml;gen wir der Tabelle auf der Seite <b>Index.cshtml <\/b>jeweils eine Spalte zum Element <b>thead|tr <\/b>und zum Element <b>tbody|tr <\/b>hinzu. Dabei geben wir als Wert zun&auml;chst das Feld <b>SalutationID <\/b>an:<\/p>\n<pre>&lt;table class=\"table\"&gt;\r\n     &lt;thead&gt;\r\n         &lt;tr&gt;\r\n             ... andere &Uuml;berschriften ...\r\n             &lt;th&gt;\r\n                 @Html.DisplayNameFor(model =&gt; model.Customer[0].Salutation)\r\n             &lt;\/th&gt;\r\n             &lt;th&gt;&lt;\/th&gt;\r\n         &lt;\/tr&gt;\r\n     &lt;\/thead&gt;\r\n     &lt;tbody&gt;\r\n@foreach (var item in Model.Customer) {\r\n         &lt;tr&gt;\r\n             ... andere Feldinhalte ...\r\n             &lt;td&gt;\r\n                 @Html.DisplayFor(modelItem =&gt; item.SalutationID)\r\n             &lt;\/td&gt;\r\n             ...\r\n         &lt;\/tr&gt;\r\n}\r\n     &lt;\/tbody&gt;\r\n&lt;\/table&gt;<\/pre>\n<p>Die &Uuml;bersichtsseite zeigt nun eine neue Spalte mit dem Fremdschl&uuml;sselwert des Feldes <b>SalutationID<\/b> an (siehe Bild 1). Das ist zwar ein erster Schritt, aber nicht das, was wir erreichen wollen &#8211; wir m&ouml;chten ja den Wert des Feldes <b>Name<\/b> des Datensatzes der Tabelle <b>Salutations<\/b>, der mit dem aktuellen Datensatz der Tabelle <b>Customers <\/b>verkn&uuml;pft ist, anzeigen. Dazu &auml;ndern wir schlicht und einfach das Feld:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_04\/pic_144_001.png\" alt=\"Ein erster Schritt - die Anzeige des Fremdschl&uuml;sselwertes\" width=\"574,61\" height=\"374,6195\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Ein erster Schritt &#8211; die Anzeige des Fremdschl&uuml;sselwertes<\/span><\/b><\/p>\n<pre>     @Html.DisplayFor(modelItem =&gt; item.Salutation.Name)\r\n&lt;\/td&gt;<\/pre>\n<p>Dies f&uuml;hrt allerdings nicht zum gew&uuml;nschten Ergebnis &#8211; auf diese Weise bleibt die Spalte schlicht leer. Auch die einfache Verwendung von <b>item.Salutation <\/b>liefert eine leere Spalte. Allerdings wird auch keine Ausnahme ausgel&ouml;st &#8211; wo liegt also das Problem Es liegt daran, dass wir nur die Daten der Tabelle <b>Customers <\/b>laden, aber nicht die der verkn&uuml;pften Tabelle <b>Salutations <\/b>&#8211; und diese beherbergt nun einmal das Feld <b>Name<\/b>, mit dem wir die Anrede in der Tabelle ausgeben wollen.<\/p>\n<p>Um diese Daten zu laden, gibt es verschiedene M&ouml;glichkeiten. Die einfachste ist diese hier, bei der wir einfach die Daten des <b>Salutation<\/b>-Elements zum jeweiligen <b>Customer<\/b>-Objekt auslesen, und zwar indem wir mit der <b>Include<\/b>-Methode arbeiten (mittlere Anweisung):<\/p>\n<pre>public async Task OnGetAsync(string firstName, string firstNamePart) {\r\n     var customers = from m in _context.Customers select m;\r\n     customers = customers.Include(c =&gt; c.Salutation);\r\n     Customer = await customers.ToListAsync();\r\n}<\/pre>\n<p>Dies liefert endlich die gew&uuml;nschten Anreden in der Auflistung der Kunden (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2018_04\/pic_144_002.png\" alt=\"Kundenliste mit Anreden\" width=\"549,6265\" height=\"318,8908\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Kundenliste mit Anreden<\/span><\/b><\/p>\n<h2>Anrede beim Anlegen oder &Auml;ndern ausw&auml;hlen<\/h2>\n<p>Nun gehen wir einen Schritt weiter und schauen uns den Dialog zum Bearbeiten eines Kunden an. Hier wollen wir das Steuer-element f&uuml;r die Auswahl der Anrede ebenfalls integrieren.<\/p>\n<p>In diesem Fall ben&ouml;tigen wir kein einfaches Textfeld, sondern ein Auswahlfeld. Unter HTML hei&szlig;en diese Steuer-elemente <b>Select<\/b>-Felder.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000144\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000144?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000144\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"d3fdc23a4e\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Artikel &#8220;Razor Pages mit Datenbankanbindung&#8221; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer &Uuml;bersichtliste anzeigen, Details bearbeiten, neue Datens&auml;tze anlegen und vorhandene Datens&auml;tze &auml;ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew&auml;hlt werden. Eine kleine Schaltfl&auml;che neben dem Nachschlagefeld soll es dann erm&ouml;glichen, die Lookup-Daten zu bearbeiten.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662018,66042018,44000018,44000017],"tags":[],"yst_prominent_words":[],"class_list":["post-55000144","post","type-post","status-publish","format-standard","hentry","category-662018","category-66042018","category-ASPNET_Core","category-WebApps_Razor_Pages"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Im Artikel &quot;Razor Pages mit Datenbankanbindung&quot; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Im Artikel &quot;Razor Pages mit Datenbankanbindung&quot; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-27T19:33:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Im Artikel &quot;Razor Pages mit Datenbankanbindung&quot; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#blogposting\",\"name\":\"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler\",\"headline\":\"Razor-Pages: Daten aus Lookup-Tabellen\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2018_04\\\/pic_144_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#articleImage\"},\"datePublished\":\"2018-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#webpage\"},\"articleSection\":\"2018, 4\\\/2018, ASP.NET Core, Web-Apps: Razor Pages\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/#listItem\",\"name\":\"2018\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/#listItem\",\"position\":2,\"name\":\"2018\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/4\\\/2018\\\/#listItem\",\"name\":\"4\\\/2018\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/4\\\/2018\\\/#listItem\",\"position\":3,\"name\":\"4\\\/2018\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/4\\\/2018\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#listItem\",\"name\":\"Razor-Pages: Daten aus Lookup-Tabellen\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/#listItem\",\"name\":\"2018\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#listItem\",\"position\":4,\"name\":\"Razor-Pages: Daten aus Lookup-Tabellen\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2018\\\/4\\\/2018\\\/#listItem\",\"name\":\"4\\\/2018\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/\",\"name\":\"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler\",\"description\":\"Im Artikel \\\"Razor Pages mit Datenbankanbindung\\\" haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \\u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\\u00e4tze anlegen und vorhandene Datens\\u00e4tze \\u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\\u00e4hlt werden. Eine kleine Schaltfl\\u00e4che neben dem Nachschlagefeld soll es dann erm\\u00f6glichen, die Lookup-Daten zu bearbeiten.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/RazorPages_Daten_aus_LookupTabellen\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2018-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler","description":"Im Artikel \"Razor Pages mit Datenbankanbindung\" haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.","canonical_url":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#blogposting","name":"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler","headline":"Razor-Pages: Daten aus Lookup-Tabellen","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2018_04\/pic_144_001.png","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#articleImage"},"datePublished":"2018-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#webpage"},"articleSection":"2018, 4\/2018, ASP.NET Core, Web-Apps: Razor Pages"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/#listItem","name":"2018"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/#listItem","position":2,"name":"2018","item":"https:\/\/vbentwickler.de\/category\/2018\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/#listItem","name":"4\/2018"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/#listItem","position":3,"name":"4\/2018","item":"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#listItem","name":"Razor-Pages: Daten aus Lookup-Tabellen"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/#listItem","name":"2018"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#listItem","position":4,"name":"Razor-Pages: Daten aus Lookup-Tabellen","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/#listItem","name":"4\/2018"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#webpage","url":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/","name":"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler","description":"Im Artikel \"Razor Pages mit Datenbankanbindung\" haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2018-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler","og:description":"Im Artikel &quot;Razor Pages mit Datenbankanbindung&quot; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.","og:url":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2020-03-27T19:33:39+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Razor-Pages: Daten aus Lookup-Tabellen - Visual Basic Entwickler","twitter:description":"Im Artikel &quot;Razor Pages mit Datenbankanbindung&quot; haben wir gezeigt, wie Sie Daten aus einfachen Tabellen in einer \u00dcbersichtliste anzeigen, Details bearbeiten, neue Datens\u00e4tze anlegen und vorhandene Datens\u00e4tze \u00e4ndern. In diesem Artikel nun wollen wir eine Lookup-Tabelle hinzunehmen, mit der wir die Anreden der Kunden aus der bereits vorhandenen Tabelle abbilden. Diese sollen dann in den Details per Nachschlagefeld ausgew\u00e4hlt werden. Eine kleine Schaltfl\u00e4che neben dem Nachschlagefeld soll es dann erm\u00f6glichen, die Lookup-Daten zu bearbeiten.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000144","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-01-30 15:55:33","updated":"2026-05-16 08:31:47","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2018\/\" title=\"2018\">2018<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/\" title=\"4\/2018\">4\/2018<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRazor-Pages: Daten aus Lookup-Tabellen\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2018","link":"https:\/\/vbentwickler.de\/category\/2018\/"},{"label":"4\/2018","link":"https:\/\/vbentwickler.de\/category\/2018\/4\/2018\/"},{"label":"Razor-Pages: Daten aus Lookup-Tabellen","link":"https:\/\/vbentwickler.de\/RazorPages_Daten_aus_LookupTabellen\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000144"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000144\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000144"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}