vue.jsをちょっとだけ使ってみた
今更ながらvue.jsをちょっと使ってみました。
色々調べつつ試してみたところ、使えそうな感じはしますが、
postする時にdataをどうやって送るのか分かったのでメモ
var self = this; var sdata = JSON.stringify(self.$data); $.ajax('/api/Hoge', { type: "post", contentType: "application/json", data: sdata });
self.$dataでdataに定義した内容を全部取れます
vue.js自体の使い方を解説しているサイト(本家も含む)は色々ありますが、
できればpostまでとかあってくれるとうれしいですね
JQuery UI Dialogにはまったのでメモ
ASP.NET MVCでJQuery UI Dialogでiframeを使用して、色々とやっていたらはまった。
業務アプリでは良くある、何らかのコードの選択画面とか良くありますね。
$("<iframe src='hoge'").dialog
で、iframeを呼び出していました。
iframe側で色々やった後、呼び出し元で
$("dialog1").remove();
submit
見ないた感じで、クローズしたとに呼び出し元でsubmitしたらiframe側のbundleでエラーになった。
IE動きを見ている限りだとどうやら何をやってもIEはiframeのプロセスがいる模様
そのくせ、DOMは無いからbundleでエラーになったみたい。
ちなみに、reload()だとエラーにならない(ブラウザのF5だから)
なので、呼び出し元でsubmitする場合は、スクリプトのbundleをしないようにしましょう
ちなみに、cssは大丈夫でした
DropDownListForがいうこと聞か無い時
razorでDropDownListを作るときに、DropDownListForをよく使います。
@Html.DropDownListFor(m => m.iro ,iroitem);
結果、
<select> <option></option> <option value="赤">赤</option> <option value="だいだい">だいだい</option> </select>
が出力されます
ここでですよ、
色 | 個数 | |
---|---|---|
りんご | 赤 | 1 |
みかん | だいだい | 2 |
な表形式で入力する場合もありますよね?
ここで、色をDropDownListにしようと思います。
Html.DropDownListFor(m => m.hoge[i].iro ,iroitem);
だいたいが、こんな感じですよね?
ここでやっかいなのは、
Html.DropDownListFor(m => m.hoge[i].iro ,iroitem);
は、うまいこと動いてくれない。
ソースを追っかけようかと思ったが、面倒なのでとりえあず対応策
@Html.DropDownListFor(m => m => m.hoge[i].iro, Model.irolist.Select(n => new SelectListItem() { Value = n.Value, Text = n.Text, Selected = n.Value == Model.hoge[i].iro }), "", new {})
になります。
MVC4、5でも同じ現象になるので、対応策で逃げることにしています。
asp.mvcのbundleで気を付けること
@styles.renderでbundleしたスタイルが読み込まれない事案発生
どうやら、bundle時に、cssで終わらなければいけない模様
// OK bundles.Add(new StyleBundle("~/Content/themes/base/css"). Include( "~/Content/themes/base/*.css" )); // NG bundles.Add(new StyleBundle("~/Content/themes/base"). Include( "~/Content/themes/base/*.css" ));
しかも、bundlleしたらパスがおかしくなった。
imageを相対パスで指定してしたら読み込まれない。
色々とやってみると
どうやらbundle時のパスが重要
bundles.Add(new StyleBundle("~/Content/hoge/css"). Include( "~/Content/themes/base/*.css" ));
としたら、cssファイルが、/Content/themes/baseにあっても、
/Content/hogeにcssファイルがあることになるので要注意
なので、bundleする時は、
bundles.Add(new StyleBundle("~/Content/themes/base/css"). Include( "~/Content/themes/base/*.css" ));
と、実体に合わせてあげると吉です
ASP.NET MVCのModelState
ここのところずっと、あまりわかっていませんが、ASP.NET MVCで開発しています。
WebFormのPostBackが恋しい今日この頃
最近よくあるのですが、ModelStateが更新されない。
どうしたもんかと思います。
多分、何かしらのエラーがあるからだと思いますが、ModelState.Clear()をしたくないです。
InputValidationあたりかと思いますが、どうしたもんでしょうか。
誰かおしえてください