
いつも勉強させてもらっております。
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ランキング
-
$("body").height();と$("body"...
-
vb.netでの記述方法について 以...
-
google apps scriptの終了のさせ方
-
C# 演算 奇数と偶数 表現の仕方
-
APIを使って埋め込んだグーグル...
-
XMLHttpRequestでキャッシュを...
-
JavaScriptからPHPに配列を渡す...
-
Latexに関する質問です。
-
テトリス / 配列をブロックに...
-
投稿画像の確認画面
-
jqueryuiのdialog
-
appendChildがieだとできない??
-
HTTPSのとき":"が"%3A"ではなく...
-
Perlの配列をJavaScriptに渡せ...
-
Vb.netのグローバル変数の宣言...
-
(google apps script)スプレ...
-
クリックすると上に開くアコー...
-
innerHTML実行後のイベント
-
ActiveXobjectが作成できない
-
ジャバスクリプトでカレンダー...
マンスリーランキングこのカテゴリの人気マンスリー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 スプレッドシートがアクテ...
おすすめ情報