現在、私はプロジェクトに取り組んでいます。私がやっていることは、かみそりにキーで配列を作成することです。剃刀でキーを使用した配列を作成する
私が今持っているものです。
string[] members = {@item.Name, @item.Url };
私は必要なものだそれ:
string[] members = {pageName: @item.Name, pageUrl: @item.Url };
どのように私はそれを達成することができますか?
現在、私はプロジェクトに取り組んでいます。私がやっていることは、かみそりにキーで配列を作成することです。剃刀でキーを使用した配列を作成する
私が今持っているものです。
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としてレンダリングすることができます。
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オブジェクトを持って:あなたはそのオプションを好む場合
@ {
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>
およびヘルパー方法。そして、あなたはmyObj.pageName
にjavascriptからアクセスできます。
また、ビュー内のアイテムにアクセスする場合はdynamic
を使用できますが、javascriptでは使用できません。
@ {
dynamic members = new { pageName = @item.Name, pageUrl = @item.Url};
}
<span>@members.pageName</span>
あなたは辞書や匿名のオブジェクトが必要です。なぜあなたはそれを必要としますか?おそらく、より良い解決策があります。 – CodeCaster
配列は必要ですか?「動的」ではありませんか? 'dynamic'では特定のプロパティにアクセスできますが、配列のように反復処理することはできません。 – smoksnes
私はRazorから自分のページにJSONオブジェクトを表示する必要がありますが、わかりません。 –