
いつも勉強させてもらっております。
ASP.NET MVC3で、ビューに渡すモデルを用意するのですが、最近javascriptをよく使うので、一発で展開できるようにできないかと思っています。
現在は、いったん起動後、jQueryで、Ajax JSONで取得しています。こちらだとすぐjavascriptのオブジェクトが取得できるので。
javascriptで一発展開というのは例えば、
public class HogeClass
{
public string moge { get; set; }
public List<string> fugas { get; set; }
}
があって、ビューモデルとして
public ActionResult HogeAction(){
var hogeObj = new HogeClass();
return View("hoge", hogeObj);
}
のようにビューへ渡して、
ビューの"hoge.cshtml"内部で、
<script type="text/javascript">
var hogeObj = <%=Model %>; // こんなので通るわけないですよね
</script>
とかできたらいいなあ、という話です。
いちいち起動のたびにAjaxで読み直すのは速度のこともあるし、気になります。
これまでは全部サーバでやってたのでこんなこと考えなかったんですが、皆さんはどうされてます?
No.2ベストアンサー
- 回答日時:
AjaxでJSON渡しをやっているんだから、同じこと(シリアライズ)をやればいいんだよ。
<script type="text/javascript">
@{
var serializer = new JavaScriptSerializer();
var value = serializer.Serialize(Model);
}
var hogeObj = @value;
</script>
JSONに渡せる程度のオブジェクトだったら、これでいけると思う。
shockazさま、ありがとうございます。
言われてみればなるほど、というか、完全なシリアライズですね!
これを思いつけなかったんです。
この方法なら、けっこう複雑なオブジェくトでも渡せるし、jsで部分的に切り出すこともできますね。。
ありがとうございます。
これで一歩、前へ進めます!
No.1
- 回答日時:
> var hogeObj = <%=Model %>; // こんなので通るわけないですよね
まあ、たしかにこのまま通りはしませんが。
Modelの中身(データ)を展開してJavaScriptのオブジェクトを生成するようなJavaScriptの
ソースを作成するようなことができればいいわけですよね。
このあたり、HogeClass専用の自分で展開するためのHTMLヘルパー(っていうんだっけかな?)を
作る、といった作業だったらそんなに難しくないような気がします。
onos様、いつもありがとうございます。
いつも悩むのですが、@.getJSONなどでJSON取得した場合は、すぐJavascriptのオブジェクトにできるのに、Model経由でJavaScriptに渡せないのが気にいりません。
Htmlヘルパーメソッドで文字列に変換する方法。。なるほど。いい考えかと。
ちょっとやってみます。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Java java final 1 2022/06/10 22:49
- JavaScript 画像の表示位置 3 2022/12/23 08:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascript 【continue 使い方】
-
スクリプトのフルパス取得したい
-
google apps scriptの終了のさせ方
-
船のゲームを作っているのです...
-
GoogleMapのAPIで初期の地図の表示
-
「~○ヶ月○日」という表示方法
-
i を小数点以下 j 桁で丸めるには
-
Google Ajax Feed API キャッ...
-
javascriptでの時刻表示カスタム
-
jacascriptでサイトにRSSフィー...
-
JavaScriptの繰り返し処理について
-
現在時刻をボタンクリックで表示
-
キーワードをクリックすると説...
-
アドレスバー(D)に一個以上...
-
ノンリフレッシュで情報を絞り...
-
replaceによる置換がうまくいか...
-
JavaScriptで決まった「時刻」...
-
このようなスクリプトはできま...
-
お世話になります。今ホームペ...
-
現在、別ページの新着RSSフィー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、ContextMenuStripに動的...
-
ASP.NET MVCでObjectをjsに渡す
-
ローカルにあるファイルを検索...
-
C#OpenCv V4にのエラーに関する...
-
google apps scriptの終了のさせ方
-
イベントが初めの一回しか起き...
-
ジェネレーターの作り方
-
JavaScriptで文字列の特定文字...
-
javascriptでテーブルに追加し...
-
なぜmatchメソッドがエラーにな...
-
ASP.NETのコントロールの値をJa...
-
javascriptでiframeのURL変更は?
-
翌月を取得するGASが分かりません
-
1日1回だけ引けるjavascriptお...
-
商品コードを入力で、商品名、...
-
JavaScriptで平日のみをカウン...
-
jsによって検索プルダウン、都...
-
C# 演算 奇数と偶数 表現の仕方
-
GASでundefinedエラーが出ます
-
gas スプレッドシートがアクテ...
おすすめ情報