Nancy試してみた
ASP.NETのNancyというフレームワークがあるとのことでちょっと試してみました。
こちらを見ていただければ概要は分かるかなっと思うので
ちょっと嵌ったところをば
嵌ったのはASP.NET MVCと同様にPost時(まあPostじゃなくてもいいけど)のモデルバインドを自動でやる方法です。
公式にも書いてあるので嵌るなって話ですけどね
ちゃんと見てなかったんじゃよ
まずモデル作ります。
public class Employee { public string Name { get; set; } public int Age { get; set; } }
適当です。
で、Controllerになる部分を作る
Get["create/"] = _ => { return View["Create"]; }; Post["create/"] = _ => { var emp = this.Bind<Employee>(); return View["Index"]; };
Postの方に注目、Bindというメソッドを使ってバインドするんですが
VisualStudioさんがそんなメソッドないよんって言います。
なぜに・・・ここでしばし悩む
あっ・・・拡張メソッドか!
using Nancy.ModelBinding;
これが必要なのでした。
そしてView
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form action="/create" method="post"> <p> 名前:<input type="text" id="name" name="Name" /> </p> <p> 年齢:<input type="text" id="age" name="Age" /> </p> <input type="submit" value="Post" /> </form> </body> </html>
ここでまた嵌る
name属性でバインドするんですが、MVCと違ってクラス名.プロパティ名じゃない!
これで
こうなる
ちゃんとバインドされてますねん♪