일반적인 뷰 (레이아웃의 @RenderBody())에 표시된 유효성 검사 (서버 측 및 클라이언트 측)로 로그인 부분 뷰 (사용자 이름, 비밀번호 및 제출 버튼) 및 모델 (일부 컨트롤 및 제출 버튼)이있는 레이아웃이 있습니다.기본 뷰에서 서버 측 유효성 검사가 부분 뷰에서 유효성 검사를 중지시키는 이유는 무엇입니까?
내 문제는 내보기에서 서버 측 유효성 검사를 수행 할 때 로그인 부분보기의 유효성을 검사 할 때 로그인의 httppost 기능을 실행하기 때문입니다. 어떻게 그걸 막을 수 있니?
로그인 뷰 컨트롤러
[HttpGet]
public ActionResult LogOn()
{
return PartialView();
}
//
// POST: /Account/LogOn
[HttpPut]
public ActionResult LogOn(LogOnModel model)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
ViewBag.UserName = model.UserName;
}
else
{
ModelState.AddModelError("", Resources.Account.Account.LoginFailureText);
}
}
return PartialView(model);
}
및 모델 컨트롤러는
public ActionResult MyModel()
{
ViewBag.DisplayThxMsg = false;
return View();
}
[HttpPost]
public ActionResult MyModel(Models.FeedbacksModel feedback)
{
if (ModelState.IsValid)
{
//do something
}
else{
//do another thing
}
return View(feedback);
}
로그인이 이미 있지만 여전히 문제가 표시되고 DataAnnotations 모델 바인더가 필수 필드 오류를 반환합니다. 마녀 제출 버튼을 클릭하는 것을 말하는 방법이 있습니까? –
렌더링 된 HTML을 확인하여 두 개의 별도의 중첩되지 않은 양식 태그가 만들어 졌는지 확인 했습니까? 하나의 양식은 로그인 용이고 다른 양식은 피드백 용입니다. 중복되거나 중첩되어서는 안됩니다. 이것이 사실인지 알려주세요. – Zasz
모든 관련 뷰를 http://pastebin.com/에 붙여 넣거나 볼 수 있도록 붙여 넣습니다. 사람들은 종종 레이아웃 파일에 양식을 추가하고 부분보기에 하나의 양식을 추가합니다. 이러한 중첩이 아마도 오류를 일으킬 수 있습니다. – Zasz