目前我正在開發一個項目,我正在嘗試的是使用剃鬚刀中的鍵創建一個數組。使用Razor中的鍵創建數組
這是我現在有:
string[] members = {@item.Name, @item.Url };
這就是我需要:
string[] members = {pageName: @item.Name, pageUrl: @item.Url };
我怎樣才能做到這一點?
目前我正在開發一個項目,我正在嘗試的是使用剃鬚刀中的鍵創建一個數組。使用Razor中的鍵創建數組
這是我現在有:
string[] members = {@item.Name, @item.Url };
這就是我需要:
string[] members = {pageName: @item.Name, pageUrl: @item.Url };
我怎樣才能做到這一點?
你不能用數組來做到這一點,但是你可以使用字符串作爲關鍵字的字典。
Dictionary<string, string> member = new Dictionary<string, string>
{
{ "pageName", item.Name },
{ "pageUrl", item.Url }
};
我需要從剃刀我的網頁上顯示的JSON對象[...]
你並不需要一個數組。這聽起來像你實際上只是想要一個對象。你可以創建一個對象,然後將其渲染爲json。
@ {
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>
而一個輔助方法,如果你喜歡的選項:
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);
}
}
現在,你有叫myObj
一個JavaScript對象。你可以從javascript訪問myObj.pageName
。
或者,您可以使用dynamic
,如果您想訪問您的視圖中的項目,但不是在JavaScript中。
@ {
dynamic members = new { pageName = @item.Name, pageUrl = @item.Url};
}
<span>@members.pageName</span>
你不能,你需要一個字典或匿名對象。你爲什麼需要它?可能有更好的解決方案。 – CodeCaster
你確定你想要一個數組而不是'dynamic'嗎?使用'dynamic'你可以訪問特定的屬性,但是你不能像數組一樣遍歷它。 – smoksnes
我需要在我的頁面上顯示來自Razor的JSON對象,但我不知道如何。 –