Ich brauche Objekt JSON zum Anzeigen auf meiner Seite von Razor [...]
Sie kein Array dafür braucht. Es klingt, als ob Sie eigentlich nur ein Objekt wollen. Sie können ein Objekt erstellen und es dann als json rendern.
@ {
object members = new { pageName = @item.Name, pageUrl = @item.Url};
}
<script>
var myObj = @Html.RenderAsJson(members); // With HtmlHelper.
var myObj2 = @Html.Raw(Json.Encode(members)) // Without HtmlHelper.
</script>
Und die Hilfsmethode, wenn Sie diese Option bevorzugen:
public static class HtmlHelpers
{
public static IHtmlString RenderAsJson(this HtmlHelper helper, object model)
{
var obj = JsonConvert.SerializeObject(model,
new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
return helper.Raw(obj);
}
}
Jetzt haben Sie eine Javascript-Objekt namens myObj
. Und Sie können auf myObj.pageName
von Javascript zugreifen.
Alternativ können Sie dynamic
verwenden, wenn Sie auf das Element in Ihrer Ansicht, aber nicht in Javascript zugreifen möchten.
@ {
dynamic members = new { pageName = @item.Name, pageUrl = @item.Url};
}
<span>@members.pageName</span>
Sie können nicht, Sie benötigen ein Wörterbuch oder ein anonymes Objekt dafür. Warum brauchst du es trotzdem? Es gibt wahrscheinlich bessere Lösungen. – CodeCaster
Sind Sie sicher, dass Sie ein Array und kein 'dynamisches' wollen? Mit einem 'dynamic' können Sie auf bestimmte Eigenschaften zugreifen, aber Sie können nicht wie ein Array durch iterieren. – smoksnes
Ich muss JSON-Objekt auf meiner Seite von Razor anzeigen, aber ich weiß nicht wie. –