2017-06-14 5 views
0

Ich habe "Vorname" Feld aus meiner Sicht. Meine Frage ist, wie kann ich manuell Wert hinzufügen oder das Feld mit meinem Controller manipulieren. Hinweis: meine Ansicht angeschlossen ist bereits Index.cshtml Datei und mein Controller Name ist FormsControllerSitecore MVC Controller

Firstname: @Html.Sitecore().Field("firstname") 
+0

Übergeben Sie ein Modell zu Ihrer Ansicht? Bevor Sie das Modell zu Ihrer Ansicht weitergeben, können Sie den Feldwert nicht erreichen! – kandroid

Antwort

0

Höchstwahrscheinlich werden Sie in der Lage sein zu tun, was Sie brauchen die RenderingContext.Current.Rendering.Item ändern, aber es gibt auch andere Varianten. Werfen Sie einen Blick auf diese wenigen guten Beiträge, die die verfügbaren Optionen here und here beschreiben.

0

Entweder in Ihrer Ansicht zuweisen @ Html.Sitecore(). Feld ("Vorname") zu einer Variablen und tun Sie die Logik in Ihrer Ansicht (nicht die beste MVC-Ansatz).

@{ 
var firstName = Html.Sitecore().Field("firstname"); 
firstName = AddedCode + firstName; 
} 
Firstname:@firstName 

Oder in Ihrem Controller erstellen eine partielle Klasse Ihr Modell zu erweitern, die Sie mit dem bereits manipuliert Vorname Wert der Ansicht sind vorbei.

0

Wenn Sie das Produkt in der Sitecores zu manipulieren diese eine Möglichkeit, es zu tun, obwohl Sie in der Regel nicht Sitecores Elemente aus Code bearbeiten möchten:

 var sitecoreItem = Sitecore.Context.Item; 
     sitecoreItem = Sitecore.Data.Database.GetDatabase("master").GetItem(sitecoreItem.ID); 
     using (new EditContext(sitecoreItem, SecurityCheck.Disable)) 
     { 
      sitecoreItem["Navigation title"] = "I have just Edited"; 
     } 

Bitte beachte, dass ich das Einzelteil erhalten erste und die Holen Sie das Element aus der Master-DB, da es wenig sinnvoll wäre, das Element aus der Web-DB zu bearbeiten.

0

Wie ich aus dem Code sehen Sie zur Verfügung gestellt haben, meine ich diesen Frieden Code:

@Html.Sitecore().Field("firstname") 

Sie wollen mit ‚Vorname‘ Feld des Kontextelement manipulieren. Wenn ja alles, was Sie in entsprechender Aktion des Controllers tun müssen, so etwas wie diese:

using (new Sitecore.SecurityModel.SecurityDisabler()) 
{ 
    Sitecore.Context.Item.Editing.BeginEdit(); 
    try 
    { 
     Sitecore.Context.Item["firstname"] = "set value you want";  
     Sitecore.Context.Item.Editing.EndEdit(); 
    } 
    catch (Exception) 
    {  
     Sitecore.Context.Item.Editing.CancelEdit(); 
    } 
} 

Hinweis: Die Verwendung SecurityDisabler() bedeutet, dass Ihr Kontext Benutzer haben wahrscheinlich nicht die Berechtigung für Kontextelement. Also nur ein Beispiel. Die beste Vorgehensweise, um einen geeigneten Zugriff auf den erforderlichen Artikel zu gewähren, ist The Security Editor