2011-07-04 5 views
2

탭이있는 대화 상자가 있습니다. 탭 중 하나에서 사용자가 입력 한 주소가 표시됩니다. 사용자가 새 주소를 추가 할 수있는 버튼도 있습니다. 사용자가 버튼을 클릭하면 현재 탭의 내용이 "추가"보기로 바뀝니다.Ajax.BeginForm하지 않아도되는 일?

내가 여기에서 수행하려고하는 것은 사용자가 주소를 추가 할 수 있도록 허용하고 일단 확인을 클릭하면 양식이 AJAX 호출을 통해 제출되고 탭이 "색인"보기 (사용자 주소 표시).

불행히도, 제대로 작동하지 않습니다. AJAX 호출을 통해 양식을 제출하는 대신 일정한 작업을 수행하고 색인보기를 탭에 표시하는 대신 흰색 배경에 표시합니다.

여기 내 코드입니다 :

[HttpPost] 
    public ActionResult Add(AddressDto model) 
    { 
     if(!ModelState.IsValid) 
     { 
      return PartialView(model); 
     } 
     Area area = null; 
     if(!string.IsNullOrEmpty(model.Area)) 
     { 
      area = _addressService.GetAreaByName(model.Area); 
     } 
     var newAdd = new Address 
         { 
          Details = model.Details, 
          Name = model.Name, 
          IsDefaultAddress = false, 
          CountryName = _addressService.GetCountryById(int.Parse(model.Country)).Name, 
          User = _helper.GetUserFromSession(HttpContext.User.Identity.Name) 
         }; 
     if(area != null) 
      area.Addresses.Add(newAdd); 
     else 
      _addressService.Create(newAdd); 
     _unitOfWork.Commit(); 
     var indexViewModel = PrepareIndexView(); 
     return PartialView("Index", indexViewModel); 
    } 

    private UserLocationViewModel PrepareIndexView() 
    { 
     var nickname = this.HttpContext.User.Identity.Name; 
     var user = _helper.GetUserFromSession(nickname, true); 
     var viewModel = Mapper.Map<User, UserLocationViewModel>(user); 
     return viewModel; 
    } 

그리고 여기에 내가 형태로 시작 해요 방법은 다음과 같습니다

@using (Ajax.BeginForm("Add", "Address", new AjaxOptions { UpdateTargetId = "ui-tabs-2", InsertionMode = InsertionMode.Replace, HttpMethod = "POST" })) 

그래서 내 설치 문제 무엇을?

답변

5

는 페이지에 다음 스크립트를 포함했는지 확인하십시오 :

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
+0

디미트로프 : 감사합니다. 그랬어. – Kassem

관련 문제