2017-11-23 2 views
0

Ich bekomme ein Problem in MVC-Projekt, dass, wenn ich die Seite zu dieser Zeit laden Ansicht Design ist perfekt, aber nach dem Klick Ereignis Zeit, wenn ich die gleiche Ansicht aufgerufen Damals änderte es das Design.nach dem Aufruf der Ansicht von Form Post-Methode Ansicht Design ist in MV geändert

Let für freiere

benutzte ich eine Teilansicht, eine Ansicht und einen Controller

Nun, wenn das Thema der Webseite des Index Ereignis bei Lastereigniszeit aufrufen zeigt perfekt. Hier ist das Bild

enter image description here

Hier ist mein Controller-Code von Indexereignis

public ActionResult Index() 
     { 
      try 
      { 
       var getYear = db.yearMaster.OrderBy(y => y.Year).ToList(); 
       SelectList yearList = new SelectList(getYear, "YearID", "Year"); 
       ViewBag.YearListName = yearList; 

       var getEvent = db.eventMaster.OrderBy(y => y.Event).ToList(); 
       SelectList eventList = new SelectList(getEvent, "EventID", "Event"); 
       ViewBag.EventListName = eventList; 

       var getBranch = db.branch.OrderBy(y => y.Branch).ToList(); 
       SelectList branchList = new SelectList(getBranch, "BranchID", "Branch"); 
       ViewBag.BranchListName = branchList; 

       var content = db.eventRegistration.Select(s => new 
       { 
        s.EventRegistrationID, 
        s.Image, 
        s.IsActive 
       }).Where(c => c.IsActive == true).Take(15).ToList(); 

       List<EventRegistrationViewModel> contentModel = content.Select(item => new EventRegistrationViewModel() 
       { 
        EventRegistrationID = item.EventRegistrationID, 
        Image = item.Image, 
        IsActive = item.IsActive 
       }).ToList(); 

       return View(contentModel); 
      } 
      catch (Exception ex) 
      { 
       return View(); 
      } 
     } 

hier die Ansicht index.cshtml

@model IEnumerable<SchoolWebApplication.ViewModel.EventRegistrationViewModel> 
@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_PublicLayout.cshtml"; 
} 

@*<script src="~/Scripts/jquery-1.8.2.min.js"></script>*@ 
<script src="~/js/jquery.mousewheel-3.0.6.pack.js"></script> 
<script src="~/js/jquery.fancybox.js?v=2.1.3"></script> 
<link href="~/Context/jquery.fancybox.css?v=2.1.2" rel="stylesheet" media="screen" /> 
<link href="~/js/jquery.fancybox.css" rel="stylesheet" /> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $("#ShowImage").fancybox({ 
      helpers: 
      { 
       title: 
       { 
       type: 'float' 
      } 
      } 
     }); 
    }); 
</script> 
<style type="text/css"> 
    .imgBox 
    { 
     width: 200px; 
     height: 200px; 
     opacity: 1.0; 
     filter: alpha(opacity=100); 
    } 
    .imgBox:hover 
    { 
     -moz-box-shadow: 0 0 10px #ccc; 
     -webkit-box-shadow: 0 0 10px #ccc; 
     box-shadow: 0 0 10px #ccc; 
     opacity: 0.4; 
     filter: alpha(opacity=40); 
    } 

</style> 
@using (Html.BeginForm("FilterImage", "Glimpses", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.AntiForgeryToken() 

    <script> 
     $(function() { 

      $("#YearList").change(function() { 
       $("#yearID").val($(this).val()); 
      }); 

      $("#eventList").change(function() { 
       $("#eventID").val($(this).val()); 
      }); 

      $("#branchList").change(function() { 
       $("#branchID").val($(this).val()); 
      }); 

     }); 
    </script> 

    <fieldset> 
      <legend> 
       <div class="row"> 

        <div class="col-sm-2" style="margin-left: 38px; width:149px"> 
         @Html.DropDownList("YearList", ViewBag.YearListName as SelectList, "Select Year") 
        </div> 
        <div class="col-sm-2"> 
         @Html.DropDownList("eventList", ViewBag.EventListName as SelectList, "Select Event") 
        </div> 
        <div class="col-sm-5"> 
         @Html.DropDownList("branchList", ViewBag.BranchListName as SelectList, "Select Branch") 
        </div> 
        <div class="col-sm-1"> 
         <input type="submit" value="Get Image" id="btn_searchimage" /> 
        </div> 
       </div> 
      </legend> 
     </fieldset> 
    <div style="height:600px; margin-left: 25px;"> 
     <div style="border-bottom:1px solid Red;"></div> 
      <div class="row-fluid"> 
       <div class="span2"> 
       <div class="item"> 
        @foreach (var item in Model) 
        { 
         <script> 
          alert(); 
         </script> 
        <div style=" margin:10px; float:left; height:200px; overflow:hidden; width:200px;"> 
         <a id="ShowImage" class="fancybox-button" data-rel="fancybox-button" 
          href="#"> 
         <div class="zoom"> 
          <img src='/Glimpses/RetrieveEventImage/@item.EventRegistrationID' alt="No Image" class="imgBox"/> 
           <div class="zoom-icon"></div> 
         </div> 
         </a> 
         </div> 
        } 
        </div> 
       </div> 
      </div> 
    </div> 
} 

Jetzt benannt ist, bis zu dieser gibt es keine Problem. Aber wenn ich die Daten filtern, wie Sie im Bild sehen und die Ansicht aufrufen, wird zu diesem Zeitpunkt das Design geändert. Hier

ist das Bild des geänderten Bildes

enter image description here

Hier wird das filterimage Ereigniscode in demselben Controller

public ActionResult FilterImage(EventRegistrationViewModel eventRegistrationViewModel, int yearList, int eventList, int branchList) // 
{ 
    try 
    { 
     var getYear = db.yearMaster.OrderBy(y => y.Year).ToList(); 
     SelectList abc = new SelectList(getYear, "YearID", "Year"); 
     ViewBag.YearListName = abc; 

     var getEvent = db.eventMaster.OrderBy(y => y.Event).ToList(); 
     SelectList def = new SelectList(getEvent, "EventID", "Event"); 
     ViewBag.EventListName = def; 

     var getBranch = db.branch.OrderBy(y => y.Branch).ToList(); 
     SelectList ijk = new SelectList(getBranch, "BranchID", "Branch"); 
     ViewBag.BranchListName = ijk; 

     var content = db.eventRegistration.Select(s => new 
     { 
      s.EventRegistrationID, 
      s.EventID, 
      s.Image, 
      s.IsActive, 
      s.YearID, 
      s.BranchID 
     }).Where(c => c.IsActive == true && c.YearID == yearList && c.BranchID == branchList && c.EventID == eventList).ToList(); 

     List<EventRegistrationViewModel> contentModel = content.Select(item => new EventRegistrationViewModel() 
     { 
      EventRegistrationID = item.EventRegistrationID, 
      Image = item.Image, 
      IsActive = item.IsActive, 
      YearID = yearList, 
      BranchID = branchList 
     }).ToList(); 

     return View("index",contentModel); 
    } 
    catch (Exception ex) 
    { 
     return View(); 
    } 
} 

danken Ihnen.

+0

Stellen Sie sicher, es gibt keine Ausnahme bei 'FilterImage'. – MUT

+0

Entschuldigung .... Ich bekomme nicht? –

+0

Debuggen Sie Ihre 'FilterImage' Aktion und stellen Sie sicher, dass der Code ausgeführt wird, ohne eine Ausnahme auszulösen. Fügen Sie in Ihrem 'catch' Block einen Haltepunkt hinzu. – MUT

Antwort

1

Für mich ist das Problem mit dieser Art von Verknüpfung von Skripten und CSS. Versuchen Sie Ihre URL auf dem Server zu lösen dies mit:

<%=ResolveUrl("~/path/file.js") 

So:

<script src="<%=this.ResolveUrl("~/js/jquery.mousewheel-3.0.6.pack.js")%>"></script> 
+0

Ich glaube nicht, dass es ein Problem mit dem Pfad ist, wenn es Problem mit dem Pfad dann an der ersten auch Design-Ansicht ist nicht klar gezeigt werden wollen es zeigt klar. –

+0

Werfen Sie einen Blick hier https://stackoverflow.com/questions/11510502/understanding-the-runat-server-attribute/16729311#16729311. In der Design-Ansicht kann es funktionieren, aber während die Seiten-URL ausgeführt wird, werden sie wahrscheinlich nicht aufgelöst. – Anwarus

+0

danke, dass Sie mir einen solchen Referenzlink geben. Aber dieser Link hat auch nicht funktioniert. –

Verwandte Themen