Escape your {0} by writing it as {{0}} so string interpolation leaves it alone. Then you can pass the string into string.Format to replace the {0}.
For those wondering why you'd want to do this, I can imagine one possibility where you want to do some sort of reusable template such as:
var urlTemplate = $"<a href='{BaseHref}/some/path/{{0}}'>{{1}}</a>";
var homeLink = string.Format(urlTemplate, "home.html", "Home");
var aboutLink = string.Format(urlTemplate, "about.html", "About Us");
Of course this example is too simple to warrant such a technique, but imagine if you had a template with a very large number of variables and you only cared to change a couple from one rendered template to the next. This would be much more readable than having {32}, {33}, {34}... etc. in your template.
String.Format?string.Formatcalls to interpolation during refactoring where appropriate, but changing existingstring.Formatcalls to partial interpolation just sounds like making more of a maintenance mess.