0
在ASP.NET MVC視圖試圖顯示列表中的文本,每次顯示一個文本。Json.Encode(Model)返回空
該腳本完成其工作,但由於某種原因,轉換列表轉換爲JSON對象失敗。列表對象以正確的值來到一個視圖,但轉換嘗試返回一個空的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; }
}
我想我做錯了什麼,但我真的不知道是什麼。
請幫忙。
如果你編碼爲JSON,沒有理由用雙引號包裝它。所以,'var list =「@ Html.Raw(...);''變成簡單的'var list = @ Html.Raw(...);' –
感謝您的回覆, 我試過了上面的但隨後VS給我語法錯誤;在@ Html.Raw(Json.Encode(Model));或者如果我刪除,則在下一行; – boris
嘗試使用'@(Html.Raw(json.Encode(model)))'或將其分配給像'String listJSON = Json.Encode(Model)''然後使用'var list = @listJSON;' - For記錄中,我確實得到了Razor對我說'';'但是他們通常是我可以忽略的錯誤,因爲生成的HTML正確輸出。 –