2012-11-17 79 views
0

。這是我的部分觀點:返回字符串值,將其放在Src的IMG標籤

<img src="@{Html.RenderAction("GetUserProfileImage", "Home", new { area = "" });}" alt="" /> 

和我的控制器:

public ActionResult GetUserProfileImage() { 

     string defaultresult = "http://MyProject.dev/Content/img/sample_user.png"; 
     if (Member.LogIn()) { 

      DBFile file = GetMemberPicFromDB(); 
      return File(file.Content, file.ContentType); 

     } else { 
      return Content(defaultresult); 
     } 
    } 

所以,當我獲取文件從DB每一件事是確定的,但是當我返回URL(由return Content)有一些不好的結果中呈現的HTML,這樣的事情:

<imghttp: myproject.dev="" content="" img="" sample_user.png="" src="" alt=""> 

    <div> 
     some content from outside of img tag added here 
    </div> 
</imghttp:> 

我也改變觀看到:

<img src="http://myproject.dev/Content/img/sample_user.png" alt="" /> 

而且每一件事情是確定的,

那麼問題出在哪裏?它似乎返回內容不能返回簡單的字符串到src屬性,那麼你的建議是什麼返回簡單的字符串?

如果無法

我想通過URL(http://myproject.dev/Content/img/sample_user.png)和​​像DB返回時拿到文件,但我如何通過這個URL(http://myproject.dev/Content/img/sample_user.png)得到控制文件?

和任何其他建議,如果你有?

回答

1

你應該從你的控制器動作在兩種情況下,並引用您的圖像這個動作返回一個文件,就像這樣:

<img src="@Url.Action("GetUserProfileImage", "Home", new { area = "" })" alt="" /> 

,然後在你的控制器動作在這兩種情況下返回文件結果:

public ActionResult GetUserProfileImage() 
{ 
    if (Member.LogIn()) 
    { 
     DBFile file = GetMemberPicFromDB(); 
     return File(file.Content, file.ContentType); 
    } 
    else 
    { 
     string image = Server.MapPath("~/content/img/sample_user.png"); 
     return File(image, "image/png"); 
    } 
} 
+0

它應該是工作,但我不知道問題出在哪裏,我檢查'image'內容,確切地說是服務器中文件的路徑,但是這返回頁面的所有html Bombed !!,你有什麼想法嗎? – Saeid

+0

這是我的錯,每件事都很完美,謝謝。 – Saeid