2016-12-28 2 views
0

У меня есть серьезное замораживание мозга: У меня есть проект MVC 5, который использует формы бутстрапа popover для ввода данных даты. Попутчики вызывается на главной целевой странице, а данные стробируются. JSON перенаправляется на функцию ActionResult в контроллере Home, которая затем обращается к db сервера SQL и возвращает набор данных JSON, который используется для создания визуализации на основе D3, отображаемой в представлении cshtml , К этому моменту все работает, данные действительны для модели и являются модульными. Контроллер Home имеет два контроллера: В поповере расслоения плотного скрипта (списано из http://jsfiddle.net/itsabhik/cxm4rt2u/2/):ASP.Net MVC 5 ActionResult throwing исключение 404

 $('.main-attributes').on('shown.bs.popover', function() { 
     $('.submit').click(function() { 
      var fromval = $('.popover #fromvalue').val(); 
      var toval = $('.popover #tovalue').val(); 
        var option = { 
         url: '/Home/LoanCount', 
         data: JSON.stringify({ dStart: fromval, dEnd: toval }), 
         method: 'post', 
         dataType: 'json', 
         contentType: 'application/json;charset=utf-8' 
        }; 

      $.ajax(option).done(function (data) { 
         return (data); 
      }) 
      $('.main-attributes').popover('hide'); 
     }); 
     $('.cancel').click(function() { 
      $('.main-attributes').popover('hide'); 
     }); 
    }); 

И коды контроллера:

 public ActionResult LoanCount(DateTime dStart, DateTime dEnd) 
    { 
     int iStart = (dStart.Year * 10000) + (dStart.Month * 100) + dStart.Day; 
     int iEnd = (dEnd.Year * 10000) + (dEnd.Month * 100) + dEnd.Day; 

     var json = Models.LoanCount.getCountStats (iStart, iEnd); 
     var data = JsonConvert.DeserializeObject<List<Models.LoanCount>> (json); 

     ViewBag.jData = json; 

     return Redirect ("/Views/Home/LoanCount.cshtml"); /* This is one of the 
            redirect variations            that have been tried */ 
    } 

проблема, которую я имею, что все изменения Перенаправления что Я использую throw 404 не найденное исключение. Вызов RedirectToAction (...), без параметров ActionResult, выдает исключение 403. Файл cshtml существует, и путь проверяется и исправляется.

Используется браузер Chrome. Что отсутствует - какие-либо подсказки, советы по этой проблеме?

+0

Я не уверен, почему вы хотите перенаправление вернулось, но если вы просто вернуть вид из вашего дома/LoanCount - делаете работу маршрута? –

+0

Я хочу передать параметры SQL-запроса с главной страницы с помощью форм popover. Параметры дают ряд данных для оценки производительности процессов различных предприятий на предприятии. – Maris

+0

Я хочу передать параметры SQL-запроса с главной страницы приложения, используя данные, введенные через формы popover. Параметры дают ряд данных для оценки производительности процесса и, как правило, для создания информационных панелей BI разных предприятий на предприятии. Маршрут Home/LoanCount работает отлично и был реализован в первом разрезе, чтобы протестировать страницы визуализации на основе D3. Параметры SQL-запроса были жестко закодированы в классах моделей для упрощения процесса отладки. Надеюсь, это имеет смысл. – Maris

ответ

0

Вы можете вернуться с префиксом тильды (~). По этой причине URL-адрес не будет изменен.

return View("~/Views/Home/LoanCount.cshtml"); 

Если вы хотите изменить URL, вы должны использовать RedirectToAction метод с именем контроллера и имя метода.

0

Предыдущий комментарий: нажал клавишу ввода. Исправление заключалось в том, чтобы отключить функцию ajax, поскольку она отправляла обратный вызов, повторить URL-адрес с параметрами и определить местоположение окна, а не выдавать вызов ajax. Сейчас он работает так, как ожидалось. Вот!

 $('.main-attributes').on('shown.bs.popover', function() { 
     $('.submit').click(function() { 
      var fromval = $('.popover #fromvalue').val(); 
      var toval = $('.popover #tovalue').val(); 
      var option = { 
       url: "/Home/LoanCount?dStart=" + fromval + "&" + "dEnd=" + toval, 
       data: JSON.stringify({ dStart: fromval, dEnd: toval }), 
       method: 'post', 
       dataType: 'json', 
       contentType: 'application/json;charset=utf-8' 
      }; 

      window.location.href = option.url; 

      $('.main-attributes').popover('hide'); 
     }); 

     $('.cancel').click(function() { 
      $('.main-attributes').popover('hide'); 
     }); 
    }); 

Контроллер:

 public ActionResult LoanCount(DateTime dStart, DateTime dEnd) 
    { 
     int iStart = (dStart.Year * 10000) + (dStart.Month * 100) + dStart.Day; 
     int iEnd = (dEnd.Year * 10000) + (dEnd.Month * 100) + dEnd.Day; 

     var json = Models.LoanCount.getCountStats (iStart, iEnd); 
     var data = JsonConvert.DeserializeObject<List<Models.LoanCount>> (json); 

     ViewBag.jData = json; 

     return View ("~/Views/Home/LoanCount.cshtml"); 
    } 
Смежные вопросы