C# 字符串替换问题
我正在尝试使用此函数替换文本文件中变量的所有实例C# 字符串替换问题,c#,asp.net,string,replace,C#,Asp.net,String,Replace,我正在尝试使用此函数替换文本文件中变量的所有实例 public static string GetTextContent(string location, string callbackfromasync) { var markup = HttpContext.Current.Server.MapPath(location); var correctString = markup.Replace("callbackUrl", callbackfromasync); ret
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);
}
我这样调用该方法:
await UserManager.SendEmailAsync(user.Id, "Confirm your account", GetTextContent(GetRegistrationEmailMarkUp, callbackUrl));
GetRegistrationMailMarkup应返回一个HTML字符串
我正在使用的标记看起来像
为什么字符串没有被替换?您把操作搞混了。您需要从文件中获取数据才能对其进行修改,而不是修改文件的路径:
string markupFile = HttpContext.Current.Server.MapPath(location);
string markupTemplate = File.ReadAllText(markupFile);
string modifiedHtml = markupTemplate.Replace("callbackUrl", callbackfromasync);
return modifiedHtml;
请编辑您的代码并将标记放置在那里,而不是图像中。。谢谢,如果这是您自己的类/方法UserManager.SendEmailAsync请同时显示该代码位置和标记的值是什么?我假设问题是它不包含标记的替换字符串。另外,我也不确定这样让磁盘访问参与到http响应服务中是否是一个好主意。将文本存储在数据库中如何?还有一些人无法查看外部资源。在问题中直接包含每件事的信息。我的问题的答案可能在那里,我不知道。通过GetRegistrationEmailMarkUp,只返回一个HTML内容字符串。你的意思是GetRegistrationEmailMarkUp应该返回一个HTML内容字符串吗?@你好,你已经编辑了你的问题以匹配我提出的答案:你是说它仍然不起作用吗?@你好,我回滚了你的编辑,因为否则它会使答案变得毫无意义。