从控制器检索操作的URL

问题描述:

我从一个视图调用一个控制器操作,在该控制器内,我需要调用另一个操作,我将调用该操作将视图保存为HTML或图像的网络位置。从控制器检索操作的URL

如何从控制器中检索操作的URL。请注意我需要实际的URL,这意味着RedirectionToAction或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") 
})) 
+1

某种暗示链接到哪个平台(ASP.NET MVC(1/2/3),导轨等),你正在使用可能会有所帮助。 – Lazarus 2010-12-20 11:42:30

+0

他说什么,关于语言或框架的一些细节,请! – 2010-12-20 11:44:43

+0

对不起,C#; .NET 3.5; MVC 1 – Jonathan 2010-12-20 11:47:38

我最终使用MvcContrib.UI.BlockRenderer将View转换为Html,而不是生成图像。我开始将html字符串保存到文件系统位置。

下面是进一步信息

http://www.brightmix.com/blog/how-to-renderpartial-to-string-in-asp-net-mvc/

如何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>