2011-04-03 23 views
10

Aramam anlamaya çalışıyorum, 3.Ana Detay Örnek Kod

Özellikle C# mvc ile ana/ayrıntı yaratmak için örnek kod arıyorum ajax yoluyla kısmi görünümün oluşturulması. Kısmi görünümü forma koyabiliyorum, ancak bir kullanıcı ajax yoluyla bir seçim listesinden bir öğe seçtikten sonra onu doldurmak istiyorum.

thx

+0

'u şu ana kadar kullandığınız kodu yükleyebilir misiniz? – gideon

cevap

13

Her zaman olduğu gibi model ile başlamak:

public class MyViewModel 
{ 
    public int Id { get; set; } 
    public string Title { get; set; } 
} 

public class DetailsViewModel 
{ 
    public string Foo { get; set; } 
    public string Bar { get; set; } 
} 

sonra kontrolör:

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     // TODO: don't hardcode, fetch from repository 
     var model = Enumerable.Range(1, 10).Select(x => new MyViewModel 
     { 
      Id = x, 
      Title = "item " + x 
     }); 
     return View(model); 
    } 

    public ActionResult Details(int id) 
    { 
     // TODO: don't hardcode, fetch from repository 
     var model = new DetailsViewModel 
     { 
      Foo = "foo detail " + id, 
      Bar = "bar detail " + id 
     }; 
     return PartialView(model); 
    } 
} 

ve ilgili görünümleri.

~/Views/Home/Index.cshtml:

@model IEnumerable<MyViewModel> 

<ul> 
    @Html.DisplayForModel() 
</ul> 

<div id="details"></div> 

<script type="text/javascript"> 
    $(function() { 
     $('.detailsLink').click(function() { 
      $('#details').load(this.href); 
      return false; 
     }); 
    }); 
</script> 

~/Views/Home/Details.cshtml:

@model DetailsViewModel 
@Model.Foo 
@Model.Bar 

~/Views/Home/DisplayTemplates/MyViewModel.cshtml:

@model MyViewModel 
<li> 
    @Html.ActionLink(Model.Title, "details", new { id = Model.Id }, new { @class = "detailsLink" }) 
</li> 
+0

Bu harika çalıştı. Bununla birlikte, takip problemi/sorum var. Bu yüzden bir ağaç görünümündeki bir seçime bağlı olarak #details bölümünde kısmi bir görünüm yüklüyorum. Bu çalışıyor. Şu anda, kullanıcı #details bölümüne "kaydetme" isabildikten sonra, sayfanın tamamı yüklendiğinden ve "kaydet" yazmasından kaynaklanıyor. yardım et? #details bölümünde bir formla kısmi görünümler koyarım. Kullanıcı "Kaydet" i tıkladığında #details bölümüne bir kez daha 'Başarılı Kaydet' özelliğini koymak istiyorum. Ancak, bu formun ajax yanıtından geldiğini ve şimdi de ajax'dan başka bir yanıt istemediğimi unutmayın. – David

1

Sana n çocuğu ekleyebileceğiniz asp.net mvc kullanarak ana detay formunu oluşturma konusunda blogged var clietn tarafında kayıtları ajax talebinin sadece çocuk kayıtlarının editör alanlarını getirme ihtiyacını ortadan kaldırması. jquery şablonları

İlgili konular