2009-10-07 20 views
5

MVC'ye yeni geldim ve ASP.NET MVC 1.0 ile geliştirilen bir projeye dahil oldum. Ayrıca JavaScript zayıf :-(Master-Detail Görünüm ASP.NET MVC

Master-Details görünümünün Northwind veritabanından 'Orders' & 'Order Details' tabloları üzerinde nasıl çalıştığını göstermeye çalışıyorum (Bu nedenle tabloların bir ilişkisi vardır, yani , bir sipariş birden fazla sipariş detayına sahip olabilir)

İki adet kontrol ürettim (Siparişler için 1., OrderDetails için 2.). Siparişler tablosundan tüm siparişleri bir Liste görünümünde görüntüledim.

Yapmak istediklerim (& başarısız oldu), tüm sipariş ayrıntılarına sahip olan siparişin Ayrıntılar görünümünün altında bir alt görünüm oluşturmak için sırayla.

Ayrıca alt görünümün içeriğini ana görünümdeki seçimlere göre değiştirmek istiyorum. Dinamik bunu değiştirmek için AJAX & JSON kullanımı hakkında çok okudum ama çok bunu yapmak için başarısız oldu: '(

herkes o yardımcı ve bunu uygulamak nasıl tekniği & koduyla beni sağlayabilir

+0

[this] (http://www.asp.net/Learn/mvc/tutorial-21-cs.aspx) konusuna bakın. – RailRhoad

cevap

5
?

Sen MVC ve jQuery ile oldukça kolayca yapabilirsiniz İlk

sizin Orders\List.aspx görünümünde. sizin Orders\Detail.ascx kısmi görünümde Sonra

<script> 
    // once the page has loaded 
    $(function() { 
     // set up your click event to load data 
     $('.list-item').click(function() { 
      // ajax load the content returned by the detail action 
      $('#detail').load('<%= Url.Action("Detail") %>', { id: this.id }); 
     }); 
    }); 
</script> 

<style> .list-item { cursor: pointer; } </style> 

<% // loop through the orders in your model and show them 
// as each div has the class list-item it will be give the click event 
foreach(var order in Model) { %> 
    <div id="<%= order.Id %>" class="list-item"><%= order.Name %></div> 
<% } %> 

<%-- the panel that the ajaxed content will be loaded into --%> 
<div id="detail"></div> 

:

Id: <%= Model.Id %><br /> 
Name: <%= Model.Name %><br /> 
Description: <%= Model.Description %><br /> 
etc