しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

MVC

ASP.NET MVC 5.2.2 / Web API 2.2.2 / Web Pages 3.2.2 がリリースされました

先月の終わりに ASP.NET MVC / Web API / Web Pages がアップデートされていました。NuGet Gallery | Microsoft ASP.NET MVC 5.2.2 NuGet Gallery | Microsoft ASP.NET Web API 2.2 5.2.2 NuGet Gallery | Microsoft ASP.NET Web Pages 3.2.2リリースノート…

ASP.NET MVC 5 で追加された属性ベースのルーティングを使ってモデルバインダ絡みのエラーを回避する

ASP.NET MVC を利用した開発を行っている人は、下のエラー画面を 1 度は見たことがあるかと思います。MVC では URL ルーティングで定義されたパラメータやクエリ文字列を、モデルバインダが適切な型へ変換してアクションの引数へバインドする仕組みになって…

ASP.NET MVC 5.2 で Facebook アプリテンプレートが使えない問題と対応法

Visual Studio 2013 Update 1 でも ASP.NET プロジェクトを作成する時に、Facebook を選択すると Facebook アプリのテンプレートが作られます。しかし、このテンプレートに対して MVC 5.2 などにアップデートしようとすると、Microsoft.AspNet.Mvc.Facebook …

ASP.NET MVC 5.2 / Web API 2.2 / Web Pages 3.2 がリリースされました

個人的には ASP.NET vNext のほうが気になって仕方ないですが、ひっそりと ASP.NET MVC 5.2 や Web API 2.2 がリリースされてました。NuGet Gallery | Microsoft ASP.NET MVC 5.2.0 NuGet Gallery | Microsoft ASP.NET Web API 2.2 5.2.0 NuGet Gallery | Mi…

Knockout.js と ASP.NET MVC の組み合わせ時にモデルバインディングが腐る件

今日も Knockout.js を使って ASP.NET MVC に POST するようなコードを書いていたのですが、モデルバインダが意図したとおりに値をバインドしてくれない時がありました。まずは ASP.NET MVC 側のコードを見ていきましょう。難しいことはしてません。 public …

ASP.NET MVC でページャーやパンくずリストを作るときには部分ビューなどを使うと便利

Twitter で酢酸先生が ASP.NET MVC でのビューの使い回しについて悩んでいたので、久しぶりに ASP.NET についてブログを書きます。しばやんサイトに無限クロールして地獄を味合わせるか…。あ、asp,net mvcで複数のページの任意の場所にカスタムコントロール…

ASP.NET 関係で最近アップデートが行われたパッケージまとめ

最近は Windows Azure Web サイトばかり弄っていたので ASP.NET 周りが疎かになってました。先日 ASP.NET MVC のマイナーアップデートが行われていたことに気が付かなかったのがショックだったので、関係しそうなパッケージのアップデートをまとめてみます。…

ASP.NET MVC 5 での新規アプリケーション開発時に便利な設定をまとめてみた

自分が毎回新規で ASP.NET MVC アプリケーションの開発を始めるときに忘れるので、今までブログに書いた分をまとめてみました。ASP.NET MVC 5 と限定してあるのは、5 より前のバージョンではバグ持ちの設定を紹介しているからです。 Razor のみを使う ViewEn…

ASP.NET MVC 5.1 や Web API 2.1 がリリースされました

そのままですが、ASP.NET MVC 5.1 や Web API 2.1 が正式リリースとなりました。Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 - .NET Web Development and Tools Blog - Site Home - MSDN BlogsVisual Studio…

ASP.NET MVC で条件付きの検証を行う属性とモデルバインダを実装してみた

昔から ASP.NET MVC の検証を条件付きで実行したいと思っていた人生でした。言葉で説明すると分かりにくいので、ヨドバシのオンラインショップのフォームがサンプルとして都合良かったので拾ってきました。このフォームの場合、チェックの有無で検証の有無も…

Sitecore と ASP.NET MVC 間でデバイスクッキーを連携させてみた

これは Sitecore Advent Calendar 2013 - Adventar の 12 日目の記事です。以前に Sitecore と ASP.NET MVC のハイブリッドなサービスの開発をお手伝いした時に、どうしても Sitecore のデバイスクッキーを ASP.NET MVC と共有化させる必要がありました。デ…

ASP.NET MVC 5.1 や Web API 2.1 のリリース候補版が公開されました

今朝、ASP.NET チームのお偉いさんである Scott Hunter が ASP.NET MVC 5.1 / Web API 2.1 / Web Pages 3.1 のリリース候補版を公開したとツイートしていたので、ちょっと内容を書いてみようと思います。公式のブログでもしっかりと新機能の説明がされている…

ASP.NET でタブレット以外を判別する方法と Display Mode への応用

もう Facebook では 1 年の振り返りが始まっている今日この頃、いかがお過ごしでしょうか。世間では Advent Calendar のタスキ繋ぎが全力で行われていますが、初日でその役目を終えた私はのんびりと過ごしています。とか、書くと本気で本気で刺されそうなの…

ASP.NET MVC に投げた 2 つ目の Pull Request がマージされました

ASP.NET MVC の最近のバージョンには OutputCache と子アクションを組み合わせた時に、OutputCacheLocation の値を適切に見てくれないバグがありました。例えば、グローバルフィルタで OutputCache を以下のように設定します。 // 出力キャッシュを無効化し…

ASP.NET MVC 5.1 の新機能を Nightly Build で試してみた

少し前に Visual Studio 2013 と同時に ASP.NET MVC 5 がリリースされましたが、既に開発チームは ASP.NET MVC 5.1 の開発を進めています。そして aspnetwebstack は MyGet で署名済みの Nightly Build を公開してくれているので、誰でも簡単に試せるように…

ASP.NET 4.5 からルーティングで生成される URL を小文字に出来るというお話

ASP.NET MVC でデフォルトのテンプレートと同じように作ると、その URL は以下のように大文字が含まれるものが生成されてしまいますよね。しかし、SEO 的には URL は小文字で統一して欲しいです。今までは Url.Action や Html.ActionLink などで小文字を指定…

ASP.NET MVC に投げた Pull Request がマージされました

DropDownListFor と ViewBag を組み合わせた時の問題 - しばやん雑記ASP.NET MVC / Web API / Web Pages - Source Code

ASP.NET MVC 5 では X-Frame-Options が自動で出力される時がある

タイトルの通り、ASP.NET MVC 5 では X-Frame-Options: SAMEORIGIN が自動で出力される時があります。出力される条件ですが、Html.AntiForgeryToken を使った時になります。AntiForgeryToken は Web Pages の CSRF 対策クラスを使っているので、Web Pages で…

ASP.NET で自動的に発行されるクッキーの名前を変更する方法

今日はちょっとした ASP.NET のクッキーに関する小ネタです。ASP.NET は特別な設定などをしなくても自動的にクッキーを発行して、認証状態やセッション、そして CSRF 対策を行ってくれます。これは非常に便利なんですが、その時に発行されるクッキーの名前が…

Visual Studio で発行時に Razor のプリコンパイルを行う方法

Web サイトとかにデプロイを行う時に利用する Web 発行には、ビューのプリコンパイルを実行する機能があるのですが、これを使えば ASP.NET MVC の Razor ビューもプリコンパイル出来ます。プリコンパイルすると何が嬉しいかという話ですが、初回アクセス時に…

JAZUG 3 周年の LT 大会向けのアプリを作って発表してきた

お前、JAZUG に参加してないだろと言われそうですが、LT 大会でトップバッターかつ、投票用のアプリを作って発表してきました。スライドはこんな感じ。 JAZUG LT アプリを作った話 from Tatsuro Shibamura スロットリングが発生するとか、バグがあって失敗す…

ASP.NET MVC の Facebook テンプレートを使って Graph API を便利に使う

ASP.NET MVC の Facebook テンプレートは Facebook SDK for .NET をベースに、色々とアプリを作る上で便利そうな機能*1が実装されています。signed_request のデコードや認証周りを自動でやってくれるんですが、FacebookClient クラスに対する拡張メソッドや…

ASP.NET MVC で Facebook アプリを作る時には気をつけろ

最近は ASP.NET MVC 向けの Facebook アプリケーションテンプレートを使って、Facebook アプリの開発をしていたりするんですが、この Microsoft.AspNet.Mvc.Facebook というライブラリが非常に使い勝手が悪く、特定のアプリしか想定していない作りになってい…

ASP.NET MVC 5 で追加された IAuthenticationFilter と Authorize 属性の関係

ASP.NET MVC 4 までは IAuthorizationFilter インターフェースだけが用意されていましたが、MVC 5 からは IAuthenticationFilter インターフェースが追加されました。名前が似ている二つのインターフェースですが、機能としては明確に異なっているので ASP.N…

Build でリリースされた ASP.NET のアップデート

Build 2013 のキーノートでは Windows 8.1 と Visual Studio 2013 の話題が中心でしたが、今回は Visual Studio 2013 で追加された ASP.NET のアップデートに関してまとめておきます。既に ASP.NET の公式サイトでは記事が公開されています。ASP.NET vNext |…

ASP.NET MVC 4 で理想的なスマートフォン対応サイトを作成する方法

ちょっと前にこんな記事が Twitter や Facebook で話題になっていました。PC とスマホ両対応しているサービスは要注意かもしれません。グーグル、スマホ対応が不適切なサイトの検索順位を引き下げへ - CNET JapanTwitter や Facebook でシェアされた URL を…

ASP.NET Web Stack が一斉に更新されています

何気なく NuGet で Update-Package を実行したら大量にパッケージが更新されたので、よく見てみると ASP.NET Web Stack というか、OSS 部分が全てアップデートされていました。以下のパッケージが 4.0.20710.0 -> 4.0.30506.0 といった感じにビルドナンバー…

ASP.NET MVC 4 で複数の Display Mode を組み合わせて使ってみる

この方法の欠点としては別の Display Mode との共存が出来ないことです。なのでスマートフォンへの対応が必要ない、完全に PC 向けのページなら対応可能かと思います。 ASP.NET MVC 4 の Display Mode を使って多言語対応を試してみた - しばやん雑記 と書い…

ASP.NET MVC 4 の Display Mode を使って多言語対応を試してみた

ASP.NET MVC 4 というか Web Pages 2 で追加された Display Mode ですが、一般的にはスマートフォンやその他デバイス向けにビューを切り替えるために使われることが多いと思います。しかし、今回はデバイスの種類ではなく、ブラウザの言語設定にしたがってビ…

ASP.NET MVC で指定した値が入力されているか検証する属性を作ってみた

よく会員登録などのフォームにある、会員規約に同意しますというチェックボックスってありますよね。ASP.NET MVC でチェックされていない時にエラーを表示する場合、Required 属性を使えば対応出来そうだと考える人は多いと思います。 public class FormMode…