2016-09-30 11 views
0

現在、私はプロジェクトに取り組んでいます。私がやっていることは、かみそりにキーで配列を作成することです。剃刀でキーを使用した配列を作成する

私が今持っているものです。

string[] members = {@item.Name, @item.Url }; 

私は必要なものだそれ:

string[] members = {pageName: @item.Name, pageUrl: @item.Url }; 

どのように私はそれを達成することができますか?

+1

あなたは辞書や匿名のオブジェクトが必要です。なぜあなたはそれを必要としますか?おそらく、より良い解決策があります。 – CodeCaster

+0

配列は必要ですか?「動的」ではありませんか? 'dynamic'では特定のプロパティにアクセスできますが、配列のように反復処理することはできません。 – smoksnes

+0

私はRazorから自分のページにJSONオブジェクトを表示する必要がありますが、わかりません。 –

答えて

0

これを配列で行うことはできませんが、文字列をキーとして辞書を使用することはできます。

Dictionary<string, string> member = new Dictionary<string, string> 
{ 
    { "pageName", item.Name }, 
    { "pageUrl", item.Url } 
}; 
0

私はあなたがそのための配列を必要としない

[...]カミソリから私のページに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> 
関連する問題