Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串替换问题_C#_Asp.net_String_Replace - Fatal编程技术网

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内容字符串吗?@你好,你已经编辑了你的问题以匹配我提出的答案:你是说它仍然不起作用吗?@你好,我回滚了你的编辑,因为否则它会使答案变得毫无意义。