JQuery'nin $ .getJSON ürününü Denetleyici'den Model verilerine erişmek için kullanıyorum ve kullanıcı öğeyi ekleyip kaldırdıkça javascript'te bir JSON nesnesi oluşturmaya çalışıyorum bir liste. Tüm JS harici bir dosyada yapılır. Model verileri için sunucuya yapılan isabet, sayfa ilk yüklendikten sonra yalnızca bir kez yapılır, böylece kullanıcının seçebileceği seçeneklerin tam listesini elde edebilirim. Bundan sonra, kullanıcı istediği kadar listeyi değiştirebilir (ve JSON nesnesine uygun şekilde güncellenir) ve sonra onu saklar (DB'ye geri yazılır).ASP.NET MVC Modeli Verilerine harici Javascript dosyasından erişme
Ama benim sorunum: $ .getJSON kullanırken, Denetleyicide çağırmam gereken yöntemin kimliğe ihtiyacı vardır, böylece söz konusu özel kaynağı arayabilir ve ilgili seçenekler listesini geri alabilir o özel kaynağa. Fakat harici bir JS dosyasından, bu ID'nin Kontrolöre nasıl geçeceğini bilmiyorum. İlk başta sayfayı açan ve URL'de oturan bağlantıya yerleştirilmiştir, ancak sayfa yüklendikten sonra, bu tanıtıcıyı Kontrolöre iletmek için nasıl bir kimlik alacağımı bilmiyorum. Bunun kafa karıştırıcı olduğunu biliyorum, çünkü aşağıda kodumu bazıları yapıştırdım:
başlangıçta bir sayfayı yüklerken Kontrolör içindeDetaylar yöntemi (yüklemek için bilmek bir RESOURCEID sürer) : In
public ActionResult Details(string resId)
{
//call base method
base.Details(resId, resourceType);
Evaluation eval = (Evaluation)this.Model;
ViewData.Model = eval;
return View("Index");
}
benim dış JS dosyası, ben bu işi yapıyorum:
:$.getJSON("/Evaluation/PopulateJournalOptions/" + id, populateJSON);
Ve Denetleyici içinde
, ben JSON nesnesi oluşturmak için çağrılan başka bir yöntem denilen PopulateJournalOptions yazdıYine de, benim sorunum, sayfa yüklendiğinde, kimliğe erişemem PopulateJournalOptions'a geçmem gerekiyor. PopulateJournalOptions'a hiçbir şey iletmemeyi ve orada yeni bir nesne oluşturmayı ve (Evaluation)this.Model
'a eşit olarak ayarlamayı denedim, ancak bu .Model, büyük olasılıkla JS'den çağrıldığında Denetleyicinin yeni bir örneği olduğu için boş görünüyor. Bu yüzden burada sıkışmış durumdayım. Herhangi bir fikir?
aşağıda Sorunuzun yanıtını aldığınızı ve ben (Eğer iyi bir MVC kitabı almak önermek Apress'den) ve yaşam döngüsü isteğini okuyun. –