2016-05-05 3 views
0

Я получаю 404 не найден на частичный вид я пытаюсь загрузить, который я использую Controler, чтобы решить, что загружаетсяПолучение 404 не найден на MVC контроллер через AJAX

[HttpGet] 
public PartialViewResult GetPartialView() 
{ 
    //Add model if any and send it through partialview 
    return PartialView("_PartnerDetailsForm.cshtml"); 
} 

enter image description here

Здесь в моем файле сценария есть проект ajax, который я использую для загрузки partiview, но я получаю ошибку 404, которая не найдена при отладке.

$(document).on('change', '#chkisJointApplication', function() { 
     if (this.checked) { 
      $.ajax({ 
       url: '@Url.Action("GetPartialView", "FormsController")', 
       type: "Get", 
       success: function (data) { 
        $("#partnerForm").html(data); 
       } 
      }); 

     } 
     else 
      $("#partnerForm").html(''); //clearing the innerHTML if checkbox is unchecked 
    }); 

Debug окна консоли enter image description here

снимок экрана, чтобы показать контроллер Forms. enter image description here

Edit 1 Это работало, но теперь я столкнулся со следующей проблемой, как

enter image description here

Edit 2

Это, чтобы показать содержимое формы из частичный вид.

<div class="row"> 

<section class="col col-6"> 

    <label class="input"> 

     <i class="icon-prepend fa fa-user"></i> 
     <input type="text" name="fname" placeholder="First name"> 
    </label> 
</section> 
<section class="col col-6"> 
    <label class="input"> 
     <i class="icon-prepend fa fa-user"></i> 
     <input type="text" name="lname" placeholder="Last name"> 
    </label> 
</section> 
</div> 
<div class="row"> 
<section class="col col-6"> 
    <label class="input"> 
     <i class="icon-prepend fa fa-envelope"></i> 
     <input type="email" name="email" placeholder="E-mail"> 
    </label> 
</section> 
<section class="col col-6"> 
    <label class="input"> 
     <i class="icon-prepend fa fa-phone"></i> 
     <input type="tel" name="phone" placeholder="Phone"> 
    </label> 
</section> 
</div> 
+1

У вас действительно есть контроллер с именем 'FormsControllerController'? (предполагая его 'FormController', затем его' url: '@ Url.Action ("GetPartialView", "Forms")', ' –

+0

И этот скрипт во внешнем файле? В этом случае вы не можете использовать' @Url.Action() '- код бритвы не анализируется во внешних файлах –

+0

да, тогда как бы я лучше его использовал? – rogue39nin

ответ

2

вы СВАО исправить код JS, такие как:

$(document).on('change', '#chkisJointApplication', function() { 
     if (this.checked) { 
      $.ajax({ 
       url: '/Forms/GetPartialView', 
       type: "Get", 
       success: function (data) { 
        $("#partnerForm").html(data); 
       } 
      }); 

     } 
     else 
      $("#partnerForm").html(''); //clearing the innerHTML if checkbox is unchecked 
    }); 
+0

Нет, вы называете '@ Url.Action (" GetPartialView "," FormsController ") 'в js-файле, он не будет работать –

+0

Это сработало, но один вопрос: содержащий div div не увеличивает его размер до высоты частичного представления в любом случае. – rogue39nin

+0

Вы можете попробовать использовать $ (" #partnerForm "). append (data); –

0

Вам не нужно писать слово 'контроллер' .... это будет делать:

url: '@Url.Action("GetPartialView", "Forms")' 

EDIT

Если у вас есть это .js файл:

поставить это в представлении:

<input type="hidden" id="myUrl" value = "@Url.Action("GetPartialView", "Forms")" /> 

и в ЯШ:

url: $("#myUrl").val(), 

или

url: document.getElementById('myUrl').value, 
+0

Так как Linh указал им, используя это в script.js, и он не понимает синтаксис бритвы, как бы я прав в этом случае – rogue39nin

+0

@ yoda77ni use ' url: '/ Forms/GetPartialView', 'вместо этого, так что ваша проблема? – SeM

+0

Да, это одно решение –

Смежные вопросы