Представление ASP.NET MVC рендеринга от строки

Это может быть плохой идеей для всевозможных причин, но я все еще хочу выполнить их. Существует ли способ представить представление от строки, которая содержит некоторый HTML и блоки кода? Моя начальная буква думала, то, что я реализовал бы IView и имейте то взятие строка HTML в конструкторе. Затем передайте его View метод наряду с моделью, как так:

public ActionResult MyAction() {
    var str = @"<html><body><%= Model.SomeProperty %></body></html>";
    var myView = new MyIView(str);
    return View(myView, Model);
}

В этой точке я вовлекаю немного, так как я не знаю, как вызвать механизм представления, чтобы проанализировать строку и заставить все это работать. Или в этой точке я должен проанализировать и представить его сам?

1
задан mikefrey 28 July 2010 в 18:33
поделиться

2 ответа

К сожалению, это непросто сделать для страниц ASPX.

В ASP.Net Razor это намного проще.

Если вы действительно хотите это сделать, зарегистрируйте пользовательский VirtualPathProvider , который разрешает специальные пути к вашим строкам, затем вызовите BuildManager.CreateInstanceFromVirtualPath , приведите его к ViewPage ], установите его ViewData и вызовите RenderView .

2
ответ дан 2 September 2019 в 22:39
поделиться

Вы можете просто вернуть строку в своем действии.

public string MyAction() {
    return @"<html><body>" + Model.SomeProperty + @"</body></html>";
}
0
ответ дан 2 September 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: