2008-12-09 64 views
50

我想寫一個html助手擴展輸出圖像標籤。 我需要訪問(在C#代碼中)像Razor的@ Url.Content()幫助器來獲取當前上下文的正確URL。 如何做到這一點?在ASP.NET MVC中,我如何使用C#代碼中的Razor @ Url.Content()助手?

+1

你需要比「從代碼」更具體。這都是代碼。你的意思是來自管制員的行動? – liammclennan 2009-01-11 22:43:11

+0

是的,它是免費提供給控制器代碼 - 請參閱我的答案下面http://stackoverflow.com/questions/351937/in-asp-net-mvc-how-can-use-i-url-content-from-code/7396627#7396627 – 2011-09-13 03:57:49

+0

爲什麼不寫一個[擴展方法](http://msdn.microsoft.com/zh-cn/library/bb383977.aspx)? – JSC 2008-12-09 08:54:57

回答

-1

你可以請求對象,因此URL是這樣的:

string fullUrl = HttpContext.Current.Request.Url.AbsoluteUri; 
2

像這樣的事情吧?

public static string MyHelper(this HtmlHelper h) 
{ 
     string url = h.ViewContext.HttpContext.Request.Url.AbsoluteUri; 
} 
38

你可以通過在適當的ViewContext創建自己的UrlHelper實例。例如,從圖像幫手做到這一點:

public static string CustomImage(this HtmlHelper html) 
{ 
    var Url = new UrlHelper(html.ViewContext.RequestContext); 
} 

在這一點上,你可以調用Url.Content()或任何其他UrlHelper方法。

84

使用以下代碼模仿Url.Content。

VirtualPathUtility.ToAbsolute("~/url/"); 
0

是,使用此代碼添加url.content到你的代碼 它的工作,兄弟和SIST

[示例] VAR img_btn_edit = VirtualPathUtility.ToAbsolute(「〜/內容/圖像/筆.PNG「);

2

是的,你可以。

從控制器,你可以撥打:

this.Url.Content("~/Somerelativepath?somethingelse=true");

相關問題