- 追加された行はこの色です。
- 削除された行はこの色です。
* バリデーション [#v69feb15]
*** Controller [#o24afd84]
using WebApplication1.Models;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
public ActionResult Index(User model)
{
if (ModelState.IsValid) {
ViewBag.Mesg = "ModelState.IsValid => OK";
}
else {
ViewBag.Mesg = "ModelState.IsValid => NO";
}
ModelState.AddModelError("Foo", "Foo is always Error");
return View(model);
}
}
}
*** View [#y8d69f5d]
@using WebApplication1.Models;
@model User
<p>@ViewBag.Mesg</p>
@Html.ValidationSummary(false)
@using(Html.BeginForm("Index", "Home", FormMethod.Post)) {
@Html.LabelFor(model => model.Id)
@Html.EditorFor(model => model.Id)
@Html.ValidationMessageFor(model => model.Id)
<br />
@Html.LabelFor(model => model.Name)
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
<br />
@Html.LabelFor(model => model.Age)
@Html.EditorFor(model => model.Age)
@Html.ValidationMessageFor(model => model.Age)
<br />
@Html.LabelFor(model => model.Sex)
@Html.DropDownListFor(model => model.Sex, new SelectListItem[] {
new SelectListItem() { Value="1", Text="男"},
new SelectListItem() { Value="2", Text="女"},
})
<br />
@Html.ValidationMessageFor(model => model.Sex)
<input type="submit" value="submit" />
}
*** Model [#l4afb4dc]
namespace WebApplication4.Models
{
public class User
{
private int _sex = 2;
[DisplayName("ID")]
[Required(ErrorMessage = "IDは必須です")]
public int Id { get; set; }
[DisplayName("名前")]
[Required]
public string Name { get; set; }
[DisplayName("性別")]
[Required]
[RegularExpression(@"^(1|2)$")]
public int Sex
{
get { return _sex; }
set { _sex = value; }
}
[DisplayName("年齢")]
public int? Age { get; set; }
}
}
** System.ComponentModel.DataAnnotations 名前空間 [#h2eb1d57]
http://msdn.microsoft.com/ja-jp/library/system.componentmodel.dataannotations(v=vs.110).aspx
** 参考 [#zc790520]
: Model Validation | http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
: @Html.EditorForのデフォルト値 | http://weblogs.asp.net/jalpeshpvadgama/archive/2011/08/16/setting-default-value-for-html-editorfor-in-asp-net-mvc.aspx
: Htmlヘルパー | http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_06/aspnetmvc3_06_03.html
: モデル・バインドとアノテーション検証の実装 | http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_04/aspnetmvc3_04_01.html
: 検証属性の自作とクラス・レベルのモデル検証 | http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_05/aspnetmvc3_05_01.html
: MSDN ASP.NET MVC 4 コンテンツ マップ | http://msdn.microsoft.com/ja-jp/library/gg416514(v=vs.108).aspx