2013-07-05 30 views
0

我有一個問題,我正在創建一個Quartz.NET作業(使用我的團隊正在開發的Web應用程序中嵌入的Quartz.NET副本,如果它很重要)發送電子郵件給包含超鏈接到屬於同一應用程序的控制器/操作方法。如何手動更改HttpRequest.ApplicationPath屬性?

爲了生成這個鏈接,我知道一些硬編碼是不可避免的(由於缺少創建實際會話),但是我希望儘可能少地使用硬編碼,以便它至少有一些餘地爲了改變事件,我的團隊最終希望重新組織應用程序架構。幸運的是,我能夠找到一種方法來手動創建一個UrlHelper對象,供Quartz作業使用(請參閱Call UrlHelper in models in ASP.NET MVC)。

我的問題是,我需要某種方式來手動設置存儲在HttpRequest對象中的應用程序虛擬路徑。這是因爲網絡應用不在我們使用的網站的根目錄。

你們知道我有辦法嗎?我試着在Google上搜索如何設置/更改HttpRequest.ApplicationPath屬性或者該屬性的數據來​​自哪裏,但沒有任何相關內容出現。

回答

0

事實證明,HttpRequest.ApplicationPath屬性是空的(我猜是手動創建一個HttpRequest對象的結果),所以我最終做的是在一個靜態字段中對應用程序路徑進行硬編碼對象並使用它來代替。

@AntLac:謝謝你的幫助。你的答案也會起作用。

0

這是一個只讀屬性,如文檔http://msdn.microsoft.com/en-us/library/system.web.httprequest.applicationpath.aspx所示。但是,您可以將實際根的String.Replace()更改爲新的。

+0

我在哪裏做String.Replace()?不幸的是,既然這是爲了工作,我不能在沒有問我的老闆的情況下發布任何實際的代碼,但創建UrlHelper的代碼幾乎是從J.PabloFernández在我引用的問題中發佈的代碼中逐字逐句的。 – user2154603

+0

我是.NET編程的新手,所以我仍然在學習in和out。 – user2154603

+0

我爲延誤表示歉意,我一直在度假。 HttpRequest.ApplicationPath返回一個字符串對象,所以你會附加替換它,HttpRequest.ApplicationPath.Replace()。 – AntLaC