2016-12-11 1 views
0

Ich benutze C# MVC Rasierapparat zu meinem Projekt. Ich bin Anfänger in dieser Technologie. Was ich hier mache ist einige Details anzeigenaus der Datenbank übernommen. Ich habe mich entschieden, einige übliche Methoden zu verwenden, um Details anzuzeigen. Ohne Schlüsselwörter wie "@ Html.LabelFor" habe ich den folgenden Code verwendet.Wie setze ich einen Wert aus der Datenbank auf ein Label in Sicht?

Jetzt erwarte ich, ein Detail namens "SID" in diesem Etikett anzuzeigen. Ich habe den Controller erstellt und die Details auch übernommen. Ich konnte jedoch nicht herausfinden, wie Details in einem Etikett angezeigt werden. Also bitte hilf mir dabei.

Antwort

3

Sie müssen die Daten aus Ihrer Datenbank in Ihrer Aktionsmethode abrufen und sie an die Ansicht übergeben, in der Sie den Beschriftungstext festlegen. Sie können ein Ansichtsmodell verwenden, um diese Information oder ViewBag zu übergeben, oder Sie können diesen Wert einfach übergeben, wenn dies das einzige ist, was Sie übergeben möchten.

Hier ist ein Beispiel

public ActionResult Index() 
{ 
    string myLabelText="Read this from db"; 
    return View((object)myLabelText); // Thanks Stephen for the comments 
} 

nun in der Ansicht, die stark an Zeichenfolge eingegeben wird

@model string 
<label id="SID" name="SID" class="validate">@Model</label> 

Usuaully Sie vielleicht mehr als ein Element aus Ihrer Sicht zu senden. In solchen Fällen könnten Sie den Betrachtungsmodellansatz in Betracht ziehen. Erstellen Sie zuerst eine Ansichtsmodellklasse.

public class MyPageVm 
{ 
    public string MyLabelText { set;get;} 
    public string MyLabelText2 { set;get;} 
} 

und in der Wirkung

public ActionResult Index() 
{ 
    var vm = new MyPageVm(); 
    vm.MyLabelText="Read this from db"; 
    vm.MyLabelText2="Another one to read from db"; 
    return View(vm); 
} 

Jetzt, da wir ein Objekt der Klasse MyPageVm sind vorbei, müssen wir unsere Sicht stark zu, dass getippt machen.

@model MyPageVm 
<label id="SID" name="SID" class="validate">@Model.MyLabelText</label> 
<label id="SID2" name="SID2" class="validate">@Model.MyLabelText2</label> 
+0

Es hat funktioniert. Vielen Dank für die Antwort. Ich werde deine Antwort in wenigen Minuten annehmen. Nochmals vielen Dank. – Mike

+0

Mit dem ersten Codeausschnitt muss 'return View ((object) myLabelText);' Andernfalls wird eine Exception ausgelöst (weil sie versucht, eine Ansicht zu finden, die dem Wert von 'myLabelText' entsprach) –

+0

Ja. Guter Fang. Vielen Dank. Ich denke, wenn funktioniert, wenn Sie die Überladung verwenden, die den Ansichtsnamen und das Modellobjekt übernimmt. – Shyju

Verwandte Themen