2016-12-01 4 views
-3

Ich versuche, alle Instanzen einer Variablen in Textdatei zu ersetzen mit dieser FunktionString Ersetzen Sie Fragen

public static string GetTextContent(string location, string callbackfromasync) 
{ 
    var markup = HttpContext.Current.Server.MapPath(location); 
    var correctString = markup.Replace("callbackUrl", callbackfromasync); 
    return File.ReadAllText(correctString); 
} 

Ich bin die Methode wie folgt aufrufen:

await UserManager.SendEmailAsync(user.Id, "Confirm your account", GetTextContent(GetRegistrationEmailMarkUp, callbackUrl)); 

GetRegistrationEmailMarkUp sollte einen String zurückgeben von HTML.

Das Markup, mit dem ich arbeite, sieht wie aus.

Warum wird die Zeichenfolge nicht ersetzt?

+1

bitte Ihren Code bearbeiten und das Markup dort nicht in einem Bild platzieren .. Dank, wenn dies Ihre eigene Klasse/Methode 'UserManager.SendEmailAsync' bitte auch diesen Code anzeigen – MethodMan

+1

Was sind die Werte von' location' und 'markup' hier? Ich nehme an, das Problem ist, dass es die markierte Ersatzzeichenfolge nicht enthält. Ich bin mir auch nicht sicher, ob es so eine großartige Idee ist, Festplattenzugriffe in HTTP-Antworten wie diese zu integrieren. Wie wäre es mit dem Speichern des Textes in einer Datenbank? Außerdem können Personen keine externen Ressourcen anzeigen. Fügen Sie direkt in die Frage alle Informationen ein. Die Antworten auf meine Frage könnten da drin sein, ich habe keine Ahnung. – asawyer

+0

Von "GetRegistrationEmailMarkUp gibt einfach eine Zeichenfolge von HTML-Inhalt zurück." Meintest du "GetRegistrationEmailMarkUp ** sollte ** eine Zeichenfolge mit HTML-Inhalt zurückgeben?"? –

Antwort

1

Sie haben die Operationen durcheinander gebracht. Sie müssen die Daten aus der Datei, um es zu ändern, nicht den Pfad der Datei ändern:

string markupFile = HttpContext.Current.Server.MapPath(location); 
string markupTemplate = File.ReadAllText(markupFile); 
string modifiedHtml = markupTemplate.Replace("callbackUrl", callbackfromasync); 
return modifiedHtml;