2012-03-29 20 views
3

Es ist mein erstes Mal mit Teilansichten und ich bin nicht in der Lage, die tatsächliche Teilansicht zu bekommen. Die Ajax-Funktion wird aufgerufen, der Controller wird getroffen und eine Warnung im Ajax-Aufruf zeigt mir, dass die Teilansicht vorhanden ist. Aber mit Fehlern, die in die Konsole (oder Alarm) geschrieben werden, bleibt mein div genauso leer. Meine Anwendung ist eine MVC4-App, aber ich bin mir ziemlich sicher, dass ich irgendwo einen dummen Fehler gemacht habe und es ist nicht MVCs Fehler :)Teilansicht nicht Rendering MVC Rasierer

Nach ein paar Stunden Googeln würde ich wirklich glücklich sein, dass jeder mir helfen kann diese Arbeit und alle Tipps/Kommentare zu Code/Ajax habe ich sehr geschätzt!

public PartialViewResult Groups() 
{ 
     var person = _userRepository.GetCurrentUser(); 
     var connections = (from c in person.Person1 select c).ToList(); 
     var groups = _context.Groups.Where(g => g.GroupId == 1); 

     var all = new GroupViewModel() 
         { 
          Connections = connections, 
          GroupDetailses = (from g in groups 
              select 
               new GroupDetails 
                { 
                 Name = g.Name, 
                 StartDate = g.StartDate, 
                 StartedById = g.StartedById, 
                }) 

         }; 
     return PartialView("Groups",all); 
} 

Mein PartialView

@model Mvc4m.Models.GroupViewModel 

<h2>Groups</h2> 

<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<h3>Create new Group</h3> 
<div class="ui-widget"> 
    <label for="group">Groupname: </label> 
    <input id="group" /> 
    <button onclick="addGroup()">Add</button> 
</div> 

@foreach (var item in Model.GroupDetailses) 
{ 
    @Html.LabelFor(model => item.Name)<text> : </text> 
    @Html.DisplayFor(model => item.Name) 
} 
<script> 
    function addGroup() { 
     $.get(
       "/Profile/AddGroup", 
       { 
        Name: $("#group").val() 
       }); 
     location.reload(); 
    }; 
</script> 

Mein Ajax-Aufruf an Profil/Index

@model Mvc4m.Models.ProfileView 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<div id="test" style="background-color:Aqua; width:200px; height:100px"></div> 

<button onclick="load()"></button> 

<script type="text/javascript"> 
function load() { 
    $.ajax({ 
     type: "GET", 
     url: '/Profile/Groups', 
     dataType: 'html', 
     success: function (response) { 
      $('#test').html(response); 
      alert(response); 
     }, 
     error: function (xhr, status, error) { 
      alert(status + " : " + error); 
     } 

    }); 
} 

</script> 
+0

ernsthaft, kann ich nicht die Formatierung rigth auf dieser Website :(Ich wollte den Code Teil von vier Leerzeichen, wie kommt es wieder so heraus? –

+0

Was ist der Fehler in der Konsole ? – Shyju

Antwort

0

Schaltet der Code funktioniert, ist ein Neustart von Visual Studio der Trick! Wie ich VS manchmal hasse ...

+0

Welche Version von Visual Studio verwenden Sie? –

+0

2010 Ultimate, es hat sich mit mir ein paar Mal am Tag 'spät': ' –

+0

Ugh. Das ist kein Spaß. Ich habe die Beta-Version von Visual Studio verwendet 11, und es scheint wirklich stabil, so dass Sie es vielleicht versuchen möchten. By the way, was ist los mit Ihrer Website (perfectdiet.com)? Ich bekomme nur eine "Verbotene" Fehler. –

Verwandte Themen