C# 如何从视图中删除此if条件?

C# 如何从视图中删除此if条件?,c#,asp.net-mvc-3,model,C#,Asp.net Mvc 3,Model,以下是观点: @if (stream.StreamSourceId == 1) { <img class="source" src="@Url.Content("~/Public/assets/images/own3dlogo.png")" alt="" /> } else if (stream.StreamSourceId == 2) { <img class="source" src="@Url

以下是观点:

    @if (stream.StreamSourceId == 1)
    {
        <img class="source" src="@Url.Content("~/Public/assets/images/own3dlogo.png")" alt="" />    
    }
    else if (stream.StreamSourceId == 2)
    {
        <img class="source" src="@Url.Content("~/Public/assets/images/twitchlogo.png")" alt="" />
    }

你不能这样做吗

public string SourceImageUrl
{
    get
    {
        switch (StreamSourceId)
        {
            case 1: return "~/Public/assets/images/own3dlogo.png";
            case 2: return "~/Public/assets/images/twitchlogo.png";
            default: return null;
        }
    }
}

我建议您将您的逻辑移到模型中,以便您的视图与此类似

    <img class="source" src="@Url.Content(stream.SourceImageUrl)" alt="" />

如果你不喜欢数组,你可以用一个更智能的集合来代替它:字典、哈希集、ecc

你的控制器中有流吗?
    <img class="source" src="@Url.Content(stream.SourceImageUrl)" alt="" />
public class Model
{
    private string[] m_images;

    public Model()
    {
        m_images = new[] { 
               "~/Public/assets/images/own3dlogo.png", 
               "~/Public/assets/images/twitchlogo.png" 
               };
    }

    public string SourceImageUrl
    {

        get { return m_images[StreamSourceId]; }
    }
}