我从视图中调用Controller Action,在该控制器中我需要调用另一个Action,我将调用该视图将视图保存为HTML或Image的网络位置。
如何从Controller中检索Action的URL。请注意我需要实际的URL,这意味着RedirectionToAction或View()不会工作。
为什么?我需要传入一个包含对View调用的URL。此视图将用于使用System.Windows.Forms.WebBrowser生成图像或HTML文档。
.NET 3.5; C#; MVC 1;
我可以做这样的事情,但它很脏......好吧,这让我感觉很脏。
using(Html.BeginForm("Action", "MyWorkflowController",
new {
MyId = "bla",
URLToGenerateImage = Url.Action("GenerateImage", "MyWorkflowController")
}))
答案 0 :(得分:1)
我最终使用MvcContrib.UI.BlockRenderer转换为View to Html而不是生成图像。我继续将html字符串保存到文件系统位置。
以下是进一步信息的链接
http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/
答案 1 :(得分:0)
ContentResult如何 - 表示文本结果,因此您可以
/控制器/使用getURL / ID
Public ActionResult GetUrl(int id)
{
// builds url to view (Controller/Image/id || Controller/Html/id)
var url = BuildImageUrl(id);
return ContentResult(url);
}
在视图中你可以:
<a href="<% Html.RenderAction("GetUrl", "Controller", new { id = idSource } ); %>">GenerateImage</a>