2014-04-03 31 views
0

在asp.net mvc aspx頁面我正在寫這樣的html輸入圖像。如何在asp.mvc aspx視圖頁中連接img src?

<img src="/public/images/"+<%: roleid %>+".jpg" alt="please load the image.." /> 

上面的代碼roleid -1來自db.but src沒有正確的形成。 預期結果 src:/public/images/1.jpg但是src沒有正確生成。請告訴我如何在aspx視圖引擎中連接字符串?

thnaks

回答

1

假設roleid被定義在上面查看某個地方,你應該以這種方式形成的屬性值:

src='<%: string.Format("/public/images/{0}.jpg", roleid) %>' 

注意事項:

  1. 的報價模式:整個值的單引號,C#代碼中字符串的雙引號。
  2. 值字符串是<%: %>標籤
0

有幾件事情我想談中產生。

1)在View中運行時生成圖像URL並不是一個好習慣。你應該使用視圖模型用於該目的這樣

public class MyViewModel 
{ 
    public MyModel m; 
    public void MyViewModel(MyModel m){this.m=m;} 

    public string ActualIMageUrl 
    { 
    get 
    { 
     return "public/Images/"+m.RoleId+".jpg"; 
    } 
    } 
} 

現在使你的觀點強類型視圖這個視圖模型類,而不是模型。

2)不直接使用IMG標籤在你看來,與其使用extenion方法如下用於HtmlHelperClass創造新方法,

public static class MVCExtensions 
{ 
    public static MvcHtmlString Image(this HtmlHelper helper, string src, string altText, string height) 
    { 
     var builder = new TagBuilder("img"); 
     builder.MergeAttribute("src", src); 
     builder.MergeAttribute("alt", altText); 
     builder.MergeAttribute("height", height); 
     return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)); 
    } 
} 

現在在查看

@model MyViewModel 
. 
. 
. 
@Html.Image(Model.ActualImageUrl); 

希望它可以幫助