시나리오 :MVC2 AJAX - 반환 된 데이터를 기반으로 결정 UpdateTargetId
내가 MVC2 응용 프로그램에 대한 로그인 양식을 만드는거야.
어떻게 그것을를하고 있어요 :
형태는 사용자 이름/암호의 유효성을 확인 MVC2 액션에 제출합니다. 유효성 검증에 실패하면 조치는 사용자가 다시 시도 할 양식 (부분보기)을 리턴합니다. 유효성 검사를 통과하면 조치는 사용자가 로그인하기 전에 방문한 페이지 (보기)를 리턴합니다. 내가 일이 원하는 것은
:이
1 - 양식을 제출하고 사용자가 성공적으로 유효성을 검사 할 때 (어떤 일이처럼 당신이 UpdateTargetId을 설정하지 않은 경우), 반환 된 결과가 현재 페이지를 교체해야합니다 .
2 - 양식이 제출되고 사용자가 유효성 검사에 실패하면 반환 된 결과가 양식을 대체해야합니다 (예 : UpdateTargetID를 양식의 포함 요소로 설정 한 경우).
이 문제는 :
나는하지만 동시에, 그런 것들 모두 작동 할 수 있습니다. 항상 현재 페이지를 바꾸거나 항상 UpdateTargetId 요소의 내용을 바꿀 수 있습니다. 하지만 사용자가 성공적으로 검증했는지 여부에 따라 둘 중 하나를 수행 할 수 있어야합니다.
내가
필요 어떤 이상적인 솔루션은 아약스 요청의 결과를 검토하고 (전체 페이지 교체)을 (단지 형태로 대체) UpdateTargetId 사용 여부를 결정할 수있을 것 . jquery (가능한 경우)를 사용하여 작업하는 것이 좋겠지 만 jquery로는별로 좋지는 않지만 직접 처리하는 방법을 찾아야합니다. 이런 식으로 할 수 없다면 나는 비슷한 방식으로 작동하도록 다른 방법/솔루션에 대해서도 열려 있습니다.
미리 감사드립니다.
요청대로. 액션 코드. 그러나 나는 말했다. 모든 mvc 응용 프로그램과 함께 기본 제공되는 표준 LogOn 작업입니다. 유일한 차이점은 유효성 검사가 실패하면 부분 뷰를 반환한다는 것입니다.
[HttpPost]
[MedLife.Code.Compression.CompressFilter]
public ActionResult SignIn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (MembershipService.ValidateUser(model.UserName, model.Password))
{
FormsService.SignIn(model.UserName, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
// If we got this far, something failed, redisplay form
return PartialView("Overlays/LoginControl", model);
}
좋습니다. 문제가 더 많습니다 ** 어떻게 ** UpdateTargetId를 사용하도록 설정했는지 여부입니다. 나는 아약스에서 UpdateTargetId를 설정한다. 어떻게 당신이 제안하는 것처럼이 문자열이 있는지 여부에 따라 프로그래밍 방식으로 사용할지 여부를 결정합니다. – DanielJW
이런 식으로 (또는 적어도 이와 비슷한 방식으로) 허용하는 방식으로 작동하도록했습니다. – DanielJW