在MVC中渲染一个字符串就像呈现视图一样,可能吗?

时间:2011-05-27 07:47:57

标签: asp.net asp.net-mvc

是否可以渲染这样的字符串:

public ActionResult Do(){
     s = " hello, click here <%=Html.ActionLink(\"index\",\"index\") %> ";

     return Content(RenderString(s));
}

结果会是这样的:

hello, click here <a href="/home/index">index</a> 

2 个答案:

答案 0 :(得分:1)

这是为了什么目的?您有一个控制器操作,它尝试评估一些字符串WebForms语法字符串并将其作为内容返回。为什么不简单地返回视图并让此视图完成工作?

如果您希望动态获取视图(来自数据库或其他内容),您可以编写custom view engine并个性化其位置,以便您的操作如下所示:

public ActionResult Do()
{
    return View();
}

将从您的自定义视图引擎而不是标准文件位置获取相应的视图内容。

如果要将视图的内容呈现为字符串,则many blog posts中已涵盖此内容。最后,如果您要处理以电子邮件形式发送视图,可能会better solutions

因此,根据您要实现的目标,可能会有不同的解决方案。

答案 1 :(得分:-1)

public String Do(){
     string s = " hello, click <a href='" + Url.Action("Index") +"' > here </a>";

     return s;
}

然后如果你打电话给{Controller} /你会有你的字符串

<强> EDITED