冯 海

一个程序新人菜鸟的日记,希望大家多多关照。QQ:32316131

Viewbag引起ValidationSummary不验证的问题

今天做一个Edit竟然不验证了,怎么都找不到原因,最后才发现

1.在HTTPGET方法中,用Viewbag.xxx读取了一个所有部门表,在视图中用下拉框显示。

2.一定要在POST方法中也写一次,因为也回传不了,导致不能验证。

	[HttpGet]
		//[Authorize(Roles = "Super")]
		[AllowAnonymous]
		public ActionResult Edit(string id)
		{
			if (string.IsNullOrWhiteSpace(id))
			{
				return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
			}

			///读出所有的部门名称分类,以下拉框的形式写入。
			ViewBag.drolistDepart = (db.Departments).Select(g => new SelectListItem
			{
				Text = g.DepartmentName,
				Value = g.Id,
				Selected = false
			});

			
			ApplicationUser  user = UserManager.FindById(id);
			if (user == null)
			{
				return HttpNotFound();
			}
			///定义一个EditUserViewModel模型
			var editUserViewModel = new EditUsers(){
				Id = user.Id,
				Email = user.Email,
				PhoneNumber = user.PhoneNumber,
				WX = user.WX,
				QQ = user.QQ,
				DepartmentId = user.DepartmentId,
				Address = user.Address,
				UserName = user.UserName,
				RealName = user.RealName,
				HeaderPic = user.HeaderPic
			};
			return View(editUserViewModel);
		}

		/// <summary>
		///Edit 的POST方法 
		/// </summary>
		/// <param name="id"></param>
		/// <param name="editUserViewModel"></param>
		/// <returns></returns>
		[HttpPost]
		//[Authorize(Roles = "Super")]
		[AllowAnonymous]
		[ValidateAntiForgeryToken]
		public async Task<ActionResult> Edit(EditUsers editUserViewModel)
		{
			
			if (ModelState.IsValid && !string.IsNullOrEmpty(editUserViewModel.Id))
			{
				///用模型传入的数据,赋值给User 模型
				ApplicationUser user = UserManager.FindById(editUserViewModel.Id);
				 
				user.Email = editUserViewModel.Email;
				user.PhoneNumber = editUserViewModel.PhoneNumber;
				user.WX = editUserViewModel.WX;
				user.QQ = editUserViewModel.QQ;
				user.DepartmentId = editUserViewModel.DepartmentId;
				user.Address = editUserViewModel.Address;
				user.RealName = editUserViewModel.RealName;
				user.HeaderPic = editUserViewModel.HeaderPic;
				var result = await UserManager.UpdateAsync(user);
				if (result.Succeeded)
				{
					return RedirectToAction("ListUsers", "Account");
				}
				AddErrors(result);
			}
			/////读出所有的部门名称分类,以下拉框的形式写入。
			ViewBag.drolistDepart = (db.Departments).Select(g => new SelectListItem
			{
				Text = g.DepartmentName,
				Value = g.Id,
				Selected = false
			});
			return View(editUserViewModel);
		}

		// <summary>
		/// 自己写的密码重置
		/// </summary>
		/// <param name="code"></param>
		/// <returns></returns>
		[HttpGet]
		//[Authorize(Roles = "Super")]
		[AllowAnonymous]
		public ActionResult PasswordReset(string id)
		{
			if (string.IsNullOrWhiteSpace(id))
			{
				return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
			}
			ApplicationUser user = UserManager.FindById(id);
			string code = UserManager.GeneratePasswordResetToken(id);
			if (user == null)
			{
				return HttpNotFound();
			}
			var resetPasswordViewModel = new PasswordRrestModel()
			{

				RealName = user.RealName,
				Password = user.PasswordHash,
				Code = code

			};
			return View(resetPasswordViewModel);
		}

  

posted @ 2018-08-28 01:04  秋天来了哟  阅读(133)  评论(0)    收藏  举报
认识就是缘份,愿天下人都快乐!
QQ: 32316131
Email: 32316131@qq.com