görünümünde oluştur ASP.NET MVC kullanıyorum ve görüntüleme işleminin bir parçası olarak javascript parçasını oluşturmaya çalışıyorum. Basit bir dizi bir dizi ortaya çıkarmak bir model var ve jQuery kullanarak üzerinde harekete geçebilmem için javascript/json eşdeğer bir dizi oluşturmak istiyorum. Ben görünümünde bunu yapmak için güzel ve özlü bir yolu var mıİşlenmemiş json dizisini ASP.NET MVC
var infoList = [
{
Name = "...",
ID = 1
} ,
{
Name = "...",
ID = 2
},
....
{
Name = "...",
ID = N
}];
:
public class Info {
public string Name {get;set;}
public int ID {get; set;}
}
public class InfoModel{
public Info[] InfoList {get;set;}
}
... Ben bir javascript dizi bu gibi bakarak üretmek istiyoruz: Yani şu modeli verilmiş modelin bir json temsili oluşturmasını sağlamaya çalışırsam, tırnakların kodlanması ile ilgili bir sorun var gibi görünüyor, bu yüzden şu anda sadece güzel bir liner ile değiştirmeyi tercih edeceğim bazı spagetti/klasik asp kodu kullanılarak üretilebilir.
DÜZENLEME: Bir denetleyicinin JsonResult döndürmesini istemediğime dikkat edin, görünümümün tek bir kod satırında modelimden oluşturulan bir javascript dizisi içermesinin bir yolunu istiyorum (eğer mümkünse
DÜZENLEME: Yolun bir parçasıyım, ancak kodlama ile mücadele ediyor gibi görünüyor. görünümünde Bu kod:
<script>
var list = <%: HtmlExtension.ToJson(Model.InfoList) %>;
</script>
(toJSON JavaScriptSerializer kullanarak dizeye dönüşüm kapsüller yerde)
bazı kodlama hataları verir:var info = [{"Name":"Low End","ID":1}];
ben aradığı şeyi değil ..which. Bunu yapabilirim, ancak o kadar parlak görünmüyorsa . Açıklandığı gibi kodlamayı açıkça görmezden gelmeliyim (çıktı kullanıcı değil, aklı başında olabilir, bu yüzden sorun olmayabilir) veya daha az klasik asp yapan başka bir şeyi mi özlüyorum?
InfoModel viewModel; // get this from wherever
return Json(viewModel);
MVC ilgili JSON koleksiyon çevirecek:
EVET! teşekkürler Jonathan, MvcHtmlString için bekliyorum büyü oldu ... –
Bu satırı satırı benim jilet HTML dosyasında kullanabildim: MvcHtmlString.Create (Json.Encode (Model)) – bkwdesign
Tam olarak. Sonunda bu 'MvcHtmlString' için anahtardır. –