miso_soup3 Blog

主に ASP.NET 関連について書いています。

ASP.NET MVC 5.1 と ASP.NET Web API 2.1 の内容

ASP.NET MVC 5.1、ASP.NET Web API 2.1、ASP.NET Web Pages 3.1 がリリースされたので、内容を調べてみました。

この記事には、ASP.NET MVC 5.1 の内容を記載しています。
ASP.NET Web API 2.1 の方は長くなったので別記事にしました:

ASP.NET MVC 5.1 の概要

What's New in ASP.NET MVC 5.1 : The Official Microsoft ASP.NET Site

  • 属性ベースルーティングの改善
    • ASP.NET Web API 2.1 に同じ更新があるのでそちらに記載。
  • Html.EditorFor で Bootstrap 対応
  • Html ヘルパーにて Enum の対応
  • 控えめな JavaScript で [MinLength], [MaxLength] に対応
  • 控えめな Ajax で this に対応
  • バグ修正
Html.EditorFor で Bootstrap 対応

Bootstrap 対応とありますが、@Html.EditorFor() で HTML 属性を追加できるようになったみたいです。

@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control", myattri = "aaa" }})

出力されるタグ(input タグの場合):

<input name="Name" class="form-control text-box single-line" myattri="aaa" …>

EditorTemplates や DisplayTemplates を自前で作っている場合は、ViewData["htmlAttributes"] で参照できます。

//EditorTemplates や DisplayTemplates 内の テンプレートにて:
@Html.TextBoxFor(m => m, ViewData["htmlAttributes"])

(この参照自体は前からできるので、今回の更新は予め用意されているテンプレートが htmlAttributes の出力に対応しただけ?の予感)

Html ヘルパーにて Enum の対応

Enum から DropDownList を生成するヘルパー:@Html.EnumDropDownListFor() が追加されました。Enum から IEnumerable を構築する EnumHelper.GetSelectList() メソッドにも注目です。
参照:

控えめな JavaScript で [MinLength], [MaxLength] に対応

MVC のクライアント検証で、[MinLength] 属性と [MaxLength] 属性が対応しました。[StringLength] 属性は前から対応済みです。

f:id:miso_soup3:20140122001225p:plain

控えめな Ajax で this に対応

未調査。リリースノートにサンプルコードがあります。
Supporting the ‘this’ context in Unobtrusive Ajax

雑感

今回のリリースで感じたことを。

  • ASP.NET で初めてのマイナーバージョンのリリース
    • 前回のリリースは 2013/11 でした。NuGet パッケージによる短期リリースが実現されています。
  • Web Pages と Web Forms の更新が少ない or 無い
  • バグ修正が多い
    • 特に ASP.NET Web API のバグ修正が結構あります。バグに遭遇した場合、修正が行われている可能性があります。
  • 日本人初の Contributor、Shiba-yan!のコミットが含まれています。 https://aspnetwebstack.codeplex.com/wikipage?title=Contributors
  • サンプルが豊富
    • ほとんどの機能に対し、サンプルが用意されています。Sample


次の記事:ASP.NET Web API 2.1 その 1