2016-11-17 34 views
-1

我有以下方法在項目映像路徑返回得到的字符串值

public ActionResult RenderImage(string imageid, string pathvalue) 
    { 
     try 
     { 
      var URL = System.Configuration.ConfigurationManager.AppSettings[pathvalue].ToString(); 
      var path = Path.Combine(URL, imageid + ".jpg"); 
      return base.File(path, "image/jpeg"); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 

我想借此恢復映像路徑作爲字符串來獲取圖像的路徑,我嘗試過這樣的事情

ControllerName ns = new ControllerName(); 

var path = ns .RenderImage("id", "path"); 
string imageurl = path.ToString(); 

但由於沒有得到圖像路徑爲「C:/User/Data/Image.jpg」它獲得價值爲「System.Web.Mvc.FilePathResult」

如何解決這個

+0

你看看什麼方法可用來'System.Web.Mvc.FilePathResult'即['Filename'](https://msdn.microsoft.com/en -us/library/system.web.mvc.filepathresult.filename(v = vs.118).aspx#P:System.Web.Mvc.FilePathResult.FileName)方法。 –

+0

你爲什麼要調用一個控制器方法,如果你只是想要一個字符串而返回一個'FileResult'?你真的想在這裏做什麼?如果它與[你的上一個問題](http://stackoverflow.com/questions/40646958/how-to-call-controller-action-method-from-partial-view)相關,那你爲什麼不設置這個關聯路徑首先使用'Url.Content()' –

+0

@StephenMuecke我試圖得到確切的圖像url作爲模型屬性對象 – kez

回答

3

嘗試:

var ns = new ControllerName(); 

var path = ns.RenderImage("id", "path"); 

var fileResult = path as FilePathResult; 

    if (fileResult != null) 
    { 

     string imageurl = fileResult.FileName; 
     imageurl = imageurl.Replace(@"\\", @"\"); 
    } 
+0

你的回答似乎是正確的,但作爲imageurl我得到這樣的東西''D:\\ Folder \\ Location \\ A.jpg「'如何刪除」\\「上面的形式,並得到像這樣的網址'」 D:\ Folder \ Location \ A.jpg「' – kez

+0

@kez已更新。檢查http://stackoverflow.com/questions/7482360/replace-with-in-a-string-in-c-sharp瞭解更多詳情 – Mate

+0

thnks它的工作 – kez