2011-04-26 80 views
0

現在我走在asp.net-MVC控制器,什麼是生成一個URL

RequestContext 

並進入這樣的UrlHelper最好的辦法:

UrlHelper u = new UrlHelper(context); 
string hrSyncUrl = u.Action("Update", "Person"); 

但問題是,這似乎返回:的

/Person/Update 

代替:

http://www.mysite.com/Person/Update 

因此,給定一個控制器和操作名稱,我怎麼能從控制器內部生成一個完整的url?

我需要這個的原因是我正在生成一個電子郵件,所以我需要完整的URL放在該電子郵件的正文。

+0

什麼是你希望用它來:

string hrSyncUrl = u.Action("Update", "Person", null, "http"); 

,避免硬編碼的協議,你可以從請求獲取它? – R0MANARMY 2011-04-26 18:02:03

+0

@ R0MANARMY - 我更新了這個問題,我需要將一個URL放入一個電子郵件中,並且「/ Person/Update」實際上不起作用? – leora 2011-04-26 18:02:59

回答

3

通過使用proper overload

var protocol = context.HttpContext.Request.Url.Scheme; 
string hrSyncUrl = u.Action("Update", "Person", null, protocol);