从字符串中呈现ASP.NET MVC视图

时间:2010-07-28 18:33:42

标签: asp.net-mvc-2

由于各种原因,这可能是一个坏主意,但我仍然希望实现它。有没有办法从呈现视图包含一些HTML和代码块的字符串?我最初的想法是,我将实现IView,并在构造函数中获取HTML字符串。然后将其与模型一起传递给View方法,如下所示:

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

此时我有点陷入困境,因为我不知道如何调用视图引擎来解析字符串并使其全部工作。或者,此时,我是否必须自己解析并呈现它?

2 个答案:

答案 0 :(得分:2)

不幸的是,这对ASPX页面来说并不容易。

ASP.Net Razor中,它更容易。

如果你真的想这样做,请注册一个自定义VirtualPathProvider,用于解析字符串的特殊路径,然后拨打BuildManager.CreateInstanceFromVirtualPath,将其投放到ViewPage,设置其ViewData },并致电RenderView

答案 1 :(得分:0)

您可以在行动中返回string

public string MyAction() {
    return @"<html><body>" + Model.SomeProperty + @"</body></html>";
}