Json.Encode(Model)返回空

时间:2013-07-27 14:54:09

标签: jquery asp.net-mvc json

在ASP.NET MVC视图中尝试显示一次显示一个列表的文本。

脚本完成其工作但由于某种原因,转换列表到JSON对象失败。 List对象带有正确值的视图,但转换尝试返回一个空的JSON对象。

查看:

@model List<WebSiteUpravitelj.Models.BlogModels.Objava>

<a href="/Blog/Objave">
<div>

<h2>Novosti</h2>

@if (Model != null)
{
<script>
    $(document).ready(
        function () {
         var list = "@Html.Raw(Json.Encode(Model))";            
            for (var i = 0; i < 2; i++)
            {
                $('#spinNaslov').slideUp(300).delay(800).fadeIn(400).text(list[i].Naslov);
                $('#spinBloger').delay(400).fadeIn(200).text(list[i].Korisnik + ', ' + list[i].Datum);
            }            
        });
    </script>
    <div id="novostiSpin">
        <h2 id="spinNaslov" style="text-align:center; color:#fed8e6;"></h2>
        <span id="spinBloger" style="float:right; color:#999898; padding:5px;"></span> 
    </div><br />       

}
else
{ 
    <p>Trenutno nema novih objava u novostima.</p>
}

</div>
</a>

控制器:

    public ActionResult _Novosti()
    {
        List<Objava> oList = Objava.Novosti();
        return PartialView(oList);
    }

模型

public class Objava:List<Objava>
{
    public int id { get; set; }
    public string Naslov { get; set; }
    public string Datum { get; set; }
    [AllowHtml]//System.Web.Mvc;
    public string Sadrzaj { get; set; }
    public string Korisnik { get; set; }
}

我想我做错了什么,但我真的不知道是什么。

请帮忙。

1 个答案:

答案 0 :(得分:0)

问题解决了,问题出在模型中。模型Objave继承List,因此在创建列表时,每次在对象中插入列表的属性为空。从那里空JSON对象。转换为JSON时,将忽略其他属性(具有值)。解决方案,我删除了基本List并创建了用于创建列表的静态方法。现在一切正常。谢谢你的时间