2010-12-02 7 views
1

にJavaScriptから読み込まれる任意の助けに感謝、わからないこれが機能しない理由、私のサーバー側のコードでは、私が持っている:は私のMVCアプリ

foreach (var item in Model) 
       { 
        if (item.SiteLocation == null || item.SiteLocation.SiteLocationId == 0) 
        { } 
        else 
        { 

         if ((item.SiteLocation.Latitude != 0) && (item.SiteLocation.Longitude != 0)) 
          Page.ClientScript.RegisterArrayDeclaration("Sites", "'" + item.SiteId + "','" + item.SiteDescription + "','" + item.SiteLocation.Longitude + "','" + item.SiteLocation.Latitude + "'"); 
        } 

...

for (var i = 0; i < Sites.length; i++) { 
     // Create and Element Object of type "option" 
     alert(Sites[i]); 
    } 

..........それは、「サイトが定義されていない」と言う:........私はJavaScriptで次のコードを使用して配列を参照してみてください

私はサーバー側と "Page.ClientScript.RegisterAr rayDeclaration "行が数回実行されるので、Javascriptを使用するときにオブジェクトが存在しない理由がわかりません。

+0

おかげエイドリアン、私は行ってきました私の前の投稿を上回り、答えが歓迎されました。J – John

答えて

3
  1. Page.ClientScript.RegisterArrayDeclaration
  2. ASP.NET MVCアプリケーションでは?
  3. あなたは深刻ですか?

ASP.NET MVCアプリケーションでは、ActionResultsを返すコントローラアクションを使用します。したがって、JSONを返すことができます:

public ActionResult Foo() 
{ 
    return Json(new[] { "elem1", "elem2" }, JsonRequestBehavior.AllowGet); 
} 

次に、このコントローラのアクションをAJAXなどを使用して消費することができます。

もう一つの可能​​性あなたのビューモデルのプロパティとしてこの配列を持つことです。その後、

public ActionResult Foo() 
{ 
    var model = new MyViewModel 
    { 
     SomeArray = new[] { "elem1", "elem2" } 
    }; 
    return View(model); 
} 

JavaScriptSerializerを使用して、ビューでこのプロパティをシリアル化:

<script type="text/javascript"> 
    var myArray = <%= new JavaScriptSerializer().Serialize(Model.SomeArray) %>; 
    // TODO: now you can use the array as a native javascript object 
</script> 
+1

私はこの答えを100%秒です。 @ジョン:MVCの "コードビハインド"は、それが渡されるモデル以外のビューへの接続を持っていないことを忘れないでください。実際、MVCにはコードビハインドといったものはありません。実際にあなたのアプリにwebforms-pageを追加しない限り... –

+0

私はこれにコメントを追加することしかできませんでしたが、もっと情報を提供する必要がありました。ダーリンの助けをありがとう、余分な分、maynありがとう、このリンクを表示することができますか? http://stackoverflow.com/questions/4345281/add-an-array-object-as-a-既存のコントローラクラスのメソッドのプロパティ – John

関連する問題