Это может быть плохой идеей для всевозможных причин, но я все еще хочу выполнить их. Существует ли способ представить представление от строки, которая содержит некоторый HTML и блоки кода? Моя начальная буква думала, то, что я реализовал бы IView
и имейте то взятие строка HTML в конструкторе. Затем передайте его View
метод наряду с моделью, как так:
public ActionResult MyAction() {
var str = @"<html><body><%= Model.SomeProperty %></body></html>";
var myView = new MyIView(str);
return View(myView, Model);
}
В этой точке я вовлекаю немного, так как я не знаю, как вызвать механизм представления, чтобы проанализировать строку и заставить все это работать. Или в этой точке я должен проанализировать и представить его сам?
К сожалению, это непросто сделать для страниц ASPX.
В ASP.Net Razor это намного проще.
Если вы действительно хотите это сделать, зарегистрируйте пользовательский VirtualPathProvider
, который разрешает специальные пути к вашим строкам, затем вызовите BuildManager.CreateInstanceFromVirtualPath
, приведите его к ViewPage
], установите его ViewData
и вызовите RenderView
.
Вы можете просто вернуть строку
в своем действии.
public string MyAction() {
return @"<html><body>" + Model.SomeProperty + @"</body></html>";
}