我想根据JSON和MVC中的用户选择更改图像列表 [英] I want to change the list of images based on user selection in JSON and MVC

查看:48
本文介绍了我想根据JSON和MVC中的用户选择更改图像列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在MVC中使用json帮助生成用户选择列表。在页面加载时,列表将包含所有图像,但是当用户单击指定特定图像组的链接时。然后,该组中的图像应仅显示。



然而问题是所有图像都在页面上成功加载。当我单击特定组的链接按钮时,它会为我提供一个包含该组的Json字符串,并重定向到Json actionresult。



请帮助我使用Json非常新。



Razor查看: -

I'm trying to generate a list on user selection with the help of json in MVC. On page load the list will contain all the images but when the user clicks a link specifying a particular image group. Then images in that group should be shown only.

The problem is however all the images are loaded successfully on page. When I click the linkbutton for particular group it gives me a Json string with that group and redirects to Json actionresult.

Please help I'm very new to using Json.

Razor View:-

@foreach (var item in Model.ImageObj)
          {
              using (Html.BeginForm("getImageClick", "Home", new { grp = item.ImgGroup }))
              {
                  <button class="btn btn-sm" type="submit" value="@item.ImgGroup" onclick="getImageClick()">@item.ImgGroup </button>
          }
          }
          <div class="clearfix"></div>

      </div>

      <div class="table-bordered" style="margin-top:40px"></div>

      <div class="container" style="margin-top:10px">

          <div id="status" style="font-size:20px"></div>

          <table id="tbl" class="table table-responsive table-hover table-bordered text-center" style="font-size:20px"></table>

          <script language="javascript">
              $("#status").text("Loading...");
              $.get("getImage", null, BindData);
              function BindData(Images) {
                  var tbl = $("#tbl");
                  for (var j = 0; j <= Images.length; j++) {
                      var newRow =
                          "<tr class='col-lg-4 col-md-4 col-sm-12'>" +
                          "<td>" + "<img src=/images/" + Images[j].Image + " " + 'alt="' + Images[j].Alt + '"' + 'style="width:200px; height:200px"' + 'class="img-thumbnail"' + " />" + "<br />" + Images[j].Description + "</td>" +
                        "</tr>"
                      //  +
                      //  "<tr class='col-md-4'>" +
                      //"<td class='col-md-12'>" + Images[j].Description + "</td>" +
                      //"</tr>"
                      ;

                      tbl.append(newRow);
                  }
                  $("#status").text("Loaded");
              }

              $.get("getImageClick", null, BindDataNew);
              function BindDataNew(ImagesNew) {
                  var tbl = $("#tbl");
                  for (var j = 0; j <= ImagesNew.length; j++) {
                      var newRow =
                          "<tr class='col-lg-4 col-md-4 col-sm-12'>" +
                          "<td>" + "<img src=/images/" + ImagesNew[j].Image + " " + 'alt="' + ImagesNew[j].Alt + '"' + 'style="width:200px; height:200px"' + 'class="img-thumbnail"' + " />" + "<br />" + ImagesNew[j].Description + "</td>" +
                        "</tr>"
                      //  +
                      //  "<tr class='col-md-4'>" +
                      //"<td class='col-md-12'>" + Images[j].Description + "</td>" +
                      //"</tr>"
                      ;

                      tbl.append(newRow);
                  }
                  $("#status").text("Loaded");
              }

          </script>





控制器方法: -





Controller Methods:-

public ActionResult getImage() //JSON Collection
       {
               Thread.Sleep(4000);
               List<ImageTbl> Images = DbContext.ImageTbls.ToList<ImageTbl>();
               return Json(Images, JsonRequestBehavior.AllowGet);

       }

       public ActionResult getImageClick(string grp) //JSON Collection
       {
               Thread.Sleep(4000);
               List<ImageTbl> ImagesNew = DbContext.ImageTbls.Where(x => x.ImgGroup == grp).ToList<ImageTbl>();
               return Json(ImagesNew, JsonRequestBehavior.AllowGet);
       }





我的尝试:



上面添加了控制器方法和剃刀视图。



What I have tried:

Added above the controller method and razor views.

推荐答案

(#status)。text(Loading ...);
("#status").text("Loading...");


.get(getImage,null,BindData);
函数BindData(图像){
var tbl =
.get("getImage", null, BindData); function BindData(Images) { var tbl =


(#tbl);
for(var j = 0; j< = Images.length; j ++){
var newRow =
< tr class ='col-lg-4 col-md-4 COL-SM-12' >中+
< td> +< img src = / images /+ Images [j]。图像++'alt ='+图像[j] .Alt +''+'style =width:200px; height:200px '+'class =img-thumbnail'+/> +< br /> +图片[j]。描述+< / td> +
< / tr>
// +
//< tr class ='col-md-4'> +
//< td class ='col-md-12'> +图片[j]。描述+< / td> +
//< / tr>
;

tbl.append(newRow);
}
("#tbl"); for (var j = 0; j <= Images.length; j++) { var newRow = "<tr class='col-lg-4 col-md-4 col-sm-12'>" + "<td>" + "<img src=/images/" + Images[j].Image + " " + 'alt="' + Images[j].Alt + '"' + 'style="width:200px; height:200px"' + 'class="img-thumbnail"' + " />" + "<br />" + Images[j].Description + "</td>" + "</tr>" // + // "<tr class='col-md-4'>" + //"<td class='col-md-12'>" + Images[j].Description + "</td>" + //"</tr>" ; tbl.append(newRow); }


这篇关于我想根据JSON和MVC中的用户选择更改图像列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆