2017-04-12 17 views
0

をURLにリダイレクトしません。 昨日、私の見解からコントローラにデータを渡す際に問題がありました。今はそれはうまくいくだろうが、アヤックスは私を私の視点に向けてリダイレクトしていない。ブラウザを開いてこのメソッドを呼び出すボタンをクリックすると、エラーが表示されません。さらに、「ネットワーク」に行き、希望のURLを見ることができます。クリックすると、正しいURLにリダイレクトされます。 これを修正する方法はありますか? Succesの機能で何かをしなければならないのですか?アヤックスは、私はアヤックスのGETメソッドは、URLに私をリダイレクト得るために問題を抱えてい

画面印刷: enter image description here When manually click on the url

function ShowTasks() { 
    //Dear Stackoverflow > This works, this is for selecting a row in the table 
    var $selectedRow = $(".highlight"); 
    if ($selectedRow.length == 1) { 
     var dcColumn = 0; 
     var rdColumn = 1; 
     var shopdoccodeColumn = 4; 

     //assigning name to the colomn value 
     var id = $selectedRow[0].children[dcColumn].innerText.trim(); 
     var regdate = $selectedRow[0].children[rdColumn].innerText.trim(); 
     var shopdoccode = $selectedRow[0].children[shopdoccodeColumn].innerText.trim(); 

     //ajax 
     if (id && regdate && shopdoccode) { 
      $.ajax({ 
       type: 'GET', 
       url: '@Url.Action("delivery", "service"@*, new { id = "id", shopdoccode = "shopdoccode", regdate = "regdate" }*@)', 
       data: { id, regdate, shopdoccode }, 
       success: function (data) { 
        if (data.success) { 
         console.log("Succes"); 
        } 

       }, 
       error: function (data) { 
        console.log("Error"); 
       } 
      }); 
     } 
    } 
} 

ServiceControllerの:

[Route("/service/delivery/{id}/{shopdoccode}/{regdate}")] 
     public ActionResult Delivery(string id, string shopdoccode, string regdate) 
     { 
      string numberPlate = Session[NumberPlateSessionVar] as string; 
      if (string.IsNullOrWhiteSpace(numberPlate)) 
      { 
       return RedirectToAction("LicensePlate"); 
      } 
      IList<ServiceOrder> getWorkReportFormData = ServiceRepository.GetWorkReportForm(id, shopdoccode, regdate); 
      IList<ServiceDelivery> deliveredTasks = ServiceRepository.DeliveredTasks(id); 
      ContactsModel contactsModel = new ContactsModel(); 
      IList<DeliveredTaskModel> delTasksModels = new List<DeliveredTaskModel>(); 
      string signature = string.Empty; 
      if (deliveredTasks.Count > 0) 
      { 
       contactsModel.Name = deliveredTasks[0].ContactName; 
       contactsModel.Email = deliveredTasks[0].Email; 
       contactsModel.Phone = deliveredTasks[0].PhoneNumber; 
       delTasksModels = deliveredTasks.Select(x => new DeliveredTaskModel() 
       { 
        Description = x.Description, 
        Info = x.PartCode, 
        Qty = x.CalcQty 
       }).ToList<DeliveredTaskModel>(); 
       signature = Convert.ToBase64String(deliveredTasks[0].Signature); 
      } 
      DeliveryModel model = new DeliveryModel() 
      { 
       DossierCode = id, 
       Contacts = contactsModel, 
       DeliveredTasks = delTasksModels, 
       Signature = signature 
      }; 
      if(getWorkReportFormData.Count > 0) 
      { 
       Console.WriteLine("Test"); 
      } 
      return View(model); 
     } 

前の質問、少し相対かもしれません。 Url action parameters using Ajax

+0

後、あなたは私たちにあなたのActionResult /化するJsonResultアクションメソッドを表示してくださいすることができ... ? – prog1011

+0

追加mainpost –

答えて

0

はこれを使用して、私の問題を解決(//********で述べたように):

window.location.href = ("service/delivery?id=" + id + "&toolcode=" + toolcode + "&regdate=" + regdate); 

をAjaxの方法

0

URLが正しくないようです。以下のコードを試し、URLとdata:パラメータを以下のコードに変更してください。

if (id && regdate && shopdoccode) { 
      $.ajax({ 
       type: 'GET', 
       url: '@Url.Action("delivery", "service")', // ********    
       data: { "id": id, "shopdoccode ": shopdoccode , "regdate": regdate }, // ******** 
       success: function (data) { 
        if (data.success) { 
         console.log("Succes"); 
        } 

       }, 
       error: function (data) { 
        console.log("Error"); 
       } 
      }); 
     } 
+0

おかげでServiceControllerのが、それは私がスクリーンショットのようにブラウザ上で検査したときに、それは、URLを生成し、まだ同じだが、それがサービスに私をリダイレクトされていません/配達 –