【问题标题】:MVC Dynamically append img tag from controllerMVC 从控制器动态附加 img 标签
【发布时间】:2014-01-17 20:18:26
【问题描述】:

我想根据特定用户的数量添加未知数量的图像;我已经为 div、标签、输入和它的工作正常使用了 .Append 函数,但是当我想附加源时它不起作用! 那么我该怎么做呢? 我试过这个:

 `  string sc = "$('<img/>', {src=\"~/Content/themes/img2.jpg\" alt=\"\",class:'table-wrapper'}).appendTo(finalDalata);";

返回 JavaScript(sc)`

finalDalata 是我的 Div 名称 那我做错了什么?

【问题讨论】:

    标签: asp.net-mvc html model-view-controller


    【解决方案1】:

    您的 appendTo 代码无效,它需要一个选择器,并且您的图像属性格式不正确,所以应该是:

    string sc = "$('<img/>', { src:'~/Content/themes/img2.jpg', alt:'', class:'table-wrapper'}).appendTo('#finalDalata');"
    

    但是,控制器应该返回数据而不是控制(想到利用和注入),因此更好的方法是在 javascript 中的 View 端创建 AppendImage 函数:

    function AppendImage(attributes)
    {
        $('<img/>', attributes).appendTo('#finalDalata');
    }
    

    注意:您可能应该在确定之前清理属性。

    然后只返回一个属性列表:

    var images = new List<dynamic>();
    // Do this for each images
    images.Add(new { src="~/Content/themes/img2.jpg", alt="", class="table-wrapper"});
    return Json(images);
    

    并且在 ajax 成功中你可以:

    success: function (data) {
        data.foreach( function (item) {
            AppendImage(item);
        });
    }
    

    【讨论】:

    • 我需要一些来自 SQL 数据库的数据和一些来自控制器和模型中另一个函数的数据,并根据这些数据来选择一张照片,所以我真的需要第一个解决方案,我注意到“=”符号并将其更改为“:”但什么也没发生!!!!
    • 有2个equals要改变,appendTo需要一个选择器:.appendTo('#finalDalata');注意 '' 和 #。
    【解决方案2】:

    TagBuilder解决

    TagBuilder tag = new TagBuilder("img");
                tag.Attributes.Add("id", "myImage");
                tag.Attributes.Add("src", "/imgs/" + UserName + ".jpg");
                tag.Attributes.Add("alt", "my image");
                tag.Attributes.Add("class", "imgsClass");
    

    然后将tag转换为字符串并传回view

    thnx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多