从Controller检索Action的URL

时间:2010-12-20 11:40:31

标签: c# asp.net asp.net-mvc

我从视图中调用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")   
}))

2 个答案:

答案 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>