2014-04-28 5 views
0

저장 만들기 및 저장 방법이 있습니다. 보기를 만들asp.net mvc의 유효성 검사

public ActionResult Create() 
     { 
return view(); 
} 

에서 아래와 같이 만드는 작업은 단순히 내가, 내가 사용하는 저장 메소드를 호출 이름과 같은 몇 가지 필드, 사용자가 데이터를 입력하면 등을 해결하고 저장 버튼을 클릭 얻을보기를 표시 아약스 전화.

$(function() { 
     $("#btnSave").click(function() { 
       $.ajax({ 
       type: "POST", 
       contentType: "application/json;charset=utf-8", 
       url: "/Contoller/Save", 
       data: 
          // parameters 
       async: false, 
       success: function (data_l) { 
        if (data_l == true) 
        { 
         alert("record has been saved in database"); 
         window.location.href = "@Url.Action("Index","Controller")"; 
        } 
        else{ 
         alert ("Invalid Entry"); 
         window.location.href = "@Url.Action("Create","Controller")"; 
        } 
       }, 
        error: function() { 
         console.log("there is some error"); 
        } 
      }); 
     }); 

무엇 내가 달성하고자하는 것은로부터 응답을 기반으로합니다

[HttpPost] 
      public bool Save(UserModel User) 
      { 
       if (ModelState.IsValid) 
       { 

        // save the data 
        return true; 
       } 

       else 
       { 
        return false; 
       } 
      } 

이 방법의 응답이보기 만들기의 아약스에 사용되는 : 저장 방법에 , 내가 데이터를 검증하고 방법을 저장, 나는 두 가지 작업을 수행해야합니다. 데이터의 유효성을 올바르게 검사하면 데이터가 저장되고 인덱스 페이지가 다시로드됩니다. 유효성 검사가 실패하면 유효성 검사 메시지와 함께 입력 한 필드가있는 작성보기를 표시하려고합니다. 데이터 주석 속성이 모델에서 올바르게 사용되었다고 확신합니다. 누군가가이 문제를 해결하는 데 나를 도울 수 있습니까?

+0

현재 구현에 어떤 문제가 : 예를 들어

이 코드 아래 참조 (그러나 이것은 우리가 지금 사용하는 것입니다 다른 방법이있을 수 있습니다)? – Neel

+0

입력 한 필드가있는보기를 표시 할 수 없습니다. – user3363329

답변

1

서버 측, 즉 컨트롤러에서 유효성 검사를 수행하는 것이 좋습니다. 모든 것이 잘되면 영구 저장소에 데이터를 저장하고 입력 유효성 검사를 먼저 수행하십시오. 데이터가 성공적으로 저장되면 인덱스보기 또는 목록보기 (View() 또는 RedirectToResult())를 반환하여 원하는보기를로드하십시오. 문제가있는 경우 ModelState 객체에 오류를 추가하고 동일한 뷰를 반환합니다. 클라이언트에서 오류는 이미 사용자가 입력 한 데이터와 함께 표시됩니다.

public ActionResult AddNewSearch(SearchViewModel searchModel) 
    { 
     if (User.Identity.IsAuthenticated) 
     { 
      if (ModelState.IsValid) 
      { 
       var organizationUser = this.GetUser(); 

       if (organizationUser == null) 
       { 
        ModelState.AddModelError("RecordNotFound", string.Format("No organization user found!!!")); 
        return RedirectToAction("LogOff", "Account"); 
       } 

       if (this.searchService.GetUserSearch(organizationUser.Id, searchModel.Name) != null) 
       { 
        ModelState.AddModelError("RecordAlreadyExists", string.Format("Search already exists!!!")); 
        return View(searchModel); 
       } 

       var userSearchDomainModel = mappingService.Map<SearchViewModel, Search>(searchModel); 
       searchService.AddUserSearch(organizationUser, userSearchDomainModel); 
       return RedirectToAction("Index", "Search"); 
      } 
     } 

     return RedirectToAction("Index", "Search"); 
    }