Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #5
0
        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));
        }
Пример #7
0
        [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));
        }
Пример #8
0
        //過多ポスティング攻撃を防止するためバインドにモデルバインドの対象となるプロパティを指定
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        //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));
        }