asp.net-mvc - 如何使用 MVC 3 (Razor) 向图像添加动态源

标签 asp.net-mvc asp.net-mvc-3 razor

我是 Mvc 的新手,我的图像可能是正确的或错误的图像,具体取决于用户给出的答案。

这是我当前的代码:

@if (Model.IsCorrect) 
    {
        <img src="@Url.Content(@"~/Content/images/Default_Correct.png")" alt="correct" />
    }
    else
    {
        <img src="@Url.Content(@"~/Content/images/Default_Wrong.png")" alt="wrong" /> 
    }

这非常有效,但我认为必须有更清洁/更好的方法来做这样的事情。

最佳答案

如果你像我一样讨厌用意大利面条代码污染你的 View ,你可以编写一个自定义助手:

public static class ImageExtensions
{
    public static IHtmlString MyImage(this HtmlHelper htmlHelper, bool isCorrect)
    {
        var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
        var img = new TagBuilder("img");
        if (isCorrect)
        {
            img.Attributes["alt"] = "correct";
            img.Attributes["src"] = urlHelper.Content("~/Content/images/Default_Correct.png");
        }
        else
        {
            img.Attributes["alt"] = "wrong";
            img.Attributes["src"] = urlHelper.Content("~/Content/images/Default_Wrong.png");
        }
        return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
    }
}

在您看来只是:

@Html.MyImage(Model.IsCorrect)

关于asp.net-mvc - 如何使用 MVC 3 (Razor) 向图像添加动态源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284372/

相关文章:

asp.net-mvc - Razor Html.ActionLink 参数

asp.net - ASP :Timer control in ASP. NET MVC 的等价物是什么?

asp.net-mvc - MVC3 - 将字节数组发布到 Controller - 数据库 RowVersion

asp.net - ASP.NET MVC 如何在不显式传递模型的情况下将模型传递给 View

javascript - 如何在更改事件时更改下拉列表的值?

asp.net-mvc-3 - EditorFor 在我的模型中收集项目

jquery - 在MVC 3.0中显示RemoteAttribute的结果

javascript - 添加复选框以允许从我的 html 表中进行多次删除和编辑

javascript - 在 javascript 脚本 block 中评估 Razor @Request.IsLocal

html - itextsharp "razor to html"工作正常但 "to pdf"忽略样式