public IHttpActionResult PutTodo(int id, Todo todo) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != todo.id) { return(BadRequest()); } db.Entry(todo).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TodoExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public ActionResult Create([Bind(Include = "id,summary,detail,limit,done")] Todo todo) { if (ModelState.IsValid) { db.Todoes.Add(todo); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(todo)); }
public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit")] Todo todo) { //入力内容が適正かチェックする if (ModelState.IsValid) { db.Todoes.Add(todo); db.SaveChanges(); //登録完了後一覧画面に戻る return(RedirectToAction("Index")); } return(View(todo)); }
public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit,Done")] Todo todo) { if (ModelState.IsValid) { var user = db.Users.Where(item => item.UserName == User.Identity.Name).FirstOrDefault(); if (user != null) { todo.user = user; db.Todoes.Add(todo); db.SaveChanges(); return(RedirectToAction("Index")); } } return(View(todo)); }
public ActionResult Create([Bind(Include = "Id,UserName,Password,RoleIds")] User user) { var roles = db.Roles.Where(role => user.RoleIds.Contains(role.Id)).ToList(); if (ModelState.IsValid) { user.Roles = roles; user.Password = membershipProvider.GeneratePasswodHash(user.UserName, user.Password); db.Users.Add(user); db.SaveChanges(); return(RedirectToAction("Index")); } SetRoles(roles); return(View(user)); }
//public ActionResult Create(Todo todo) // モデルバインド先とするプロパティを明示していない場合 //public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit,Done")] Todo todo) // モデルバインド先とするプロパティを明示している場合 (Doneも指定している) public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit")] Todo todo) // モデルバインド先とするプロパティを明示している場合 (Doneを指定しない) { if (ModelState.IsValid) { var loginUser = db.Users.Where(user => user.UserName == User.Identity.Name).FirstOrDefault(); if (loginUser == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound, User.Identity.Name)); } todo.User = loginUser; // Todoの保持ユーザーを設定 db.Todoes.Add(todo); db.SaveChanges(); return(RedirectToAction(nameof(Index))); } return(View(todo)); }
[ValidateAntiForgeryToken] //CSRF対策のためにPostされたトークン(Viewで生成されたもの)を検証する public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit,Done")] Todo todo) //[Bind(Include = "Id,Summary,Detail,Limit,Done")]過多ポスティング攻撃を防いでいる { if (ModelState.IsValid) //入力内容が適切の場合 { var user = db.Users.Where(item => item.UserName == User.Identity.Name).FirstOrDefault(); //if (user != null) //{ todo.User = user; db.Todoes.Add(todo); //sbsetに値を登録する db.SaveChanges(); //dbに変更を反映する return(RedirectToAction("Index")); //指定されたアクションに転送するHelpermethod //} } return(View(todo)); }
//過多ポスティング攻撃を防止するためバインドにモデルバインドの対象となるプロパティを指定 public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit")] Todo todo) { //IsValidは入力が適切かどうかを返す if (ModelState.IsValid) { var user = db.Users.Where(item => item.UserName == User.Identity.Name).FirstOrDefault(); if (user != null) { todo.User = user; db.Todoes.Add(todo); db.SaveChanges(); //RedirectToActionは指定されたアクションメソッドに処理を転送するヘルパーメソッド return(RedirectToAction("Index")); } } return(View(todo)); }
public ActionResult Create([Bind(Include = "Id,UserName,Password,RoleIds")] User user) // Bind先プロパティとしてRoleIdsを追加 { // ロールListBoxに対応しているのはUser.RoleIdsプロパティ(Role.Idのリスト)のため、これを元に選択されたRoleのリストを取得。 var selectedRoles = db.Roles.Where(role => user.RoleIds.Contains(role.Id)).ToList(); if (ModelState.IsValid) { user.Roles = selectedRoles; // 選択されたRoleのリストをuserパラメーターのRolesプロパティに設定 user.Password = _membershipProvider.GeneratePasswordHash(user.UserName, user.Password); // パスワードをハッシュ化 db.Users.Add(user); db.SaveChanges(); return(RedirectToAction("Index")); } // ModelState.IsValid=falseの場合にも入力画面に戻るために、DBから全Roleを取得しリストボックス表示用に加工(ViewBag.RoleIdsの設定)が必要。 // この際、リストボックス選択状態を復元するために、画面で選択されたRoleのコレクションを引数として渡す。 this.SetRoles(selectedRoles); return(View(user)); }
public ActionResult Create([Bind(Include = "Id,UserName,Password,RoleIds")] User user) { //ロールIDがDBのIDに存在すれば取得してリストとして返す var roles = db.Roles.Where(role => user.RoleIds.Contains(role.Id)).ToList(); if (ModelState.IsValid) { //取得したロールをセット user.Roles = roles; user.Password = this.membershipProvider.GeneratePasswordHash(user.UserName, user.Password); db.Users.Add(user); //ユーザに追加 db.SaveChanges(); //DBに反映 return(RedirectToAction("Index")); } //False→入力内容に問題がある //入力内容を復元のままクリエイト this.SetRoles(roles); return(View(user)); }
//Bind→PostされたデータをTodoモデルに紐づける public ActionResult Create([Bind(Include = "Id,Summary,Detail,Limit,Done")] Todo todo) { //入力内容が適切かどうか返す if (ModelState.IsValid) { var user = db.Users.Where(item => item.UserName == User.Identity.Name).FirstOrDefault(); if (user != null) { todo.User = user; //OK→登録処理 //DBセットに登録 db.Todoes.Add(todo); //DBセットの内容をDBへ反映 db.SaveChanges(); //index(アクションメソッド)に処理を転送 //ここでは処理が完了すると一覧画面に戻る。 return(RedirectToAction("Index")); } } //NG→入力内容をCreate.schtmlに返す return(View(todo)); }