2015-06-06 53 views
0

Мне нужна ваша помощь.MVC частичный просмотр с использованием ajax

Я пытаюсь сделать частичный вид с помощью ajax. Но это терпит неудачу. вот код:

//I have action to get data 
public ActionResult ReturnPartial() 
    { 
       return PartialView("_LogIn"); 
    } 

//here is ajax 
    <p onclick="Func1()">Log In</p> 

<div id="here"></div> 

<script> 
    function Func1() { 
     $.ajax({ 
      type: "GET", 
      url: '@(Url.Action("ReturnPartial", "Registration"))', 
      success: function (data) { 
       $("#here").html(data); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert("Failed to retrieve view"); 
      } 
     }); 
    } 
</script> 

Когда я нажимаю Войдите в систему, он изменяет сообщение: «Не удалось получить вид»;

Спасибо за ваше внимание и, пожалуйста, помогите мне

+0

Если запрос Ajax не работает, это связано с вашим кодом на стороне сервера. Ответ должен быть либо ошибкой клиента (HTTP 4xx), либо ошибкой сервера (HTTP 5xx). Я не использую .NET, но вам нужно проверить свой серверный код, а не передний. Возможно, журналы? –

+0

Вы пытались посетить 'http: // yourdomainname.com/Registration/ReturnPartial', набрав адрес в адресной строке URL-адреса браузера и нажмите enter? Посмотрите, отображается ли частичный вид входа в вашем браузере. – ekad

+0

@ Flo-Schield-Bobby Я начал писать это приложение 30 минут назад. поэтому у меня есть только эти функции в моих контроллерах и Views. конечно, у меня тоже есть частичное представление _LogIn. еще ничего. –

ответ

0

Вы не должны предупредить общее сообщение «Не удалось получить вид». . По крайней мере, вы должны были предупредить xhr.status и xhr.responseText, чтобы вы знали, не можете ли вы достичь сервера (ошибка клиента/url), или сервер не смог вернуть ответ из-за ошибки сервера.

Также убедитесь, что ваш общий ErrorHandling (HandleErrorAttribute или Application_Error) регистрирует все ошибки, поэтому вы можете найти все ошибки сервера и его детали.

0

Когда у вас есть этот метод действия в RegistrationController

public ActionResult ReturnPartial() 
{ 
    return PartialView("_LogIn"); 
} 

убедитесь, что _LogIn.cshtml находится в папке Views/Shared или Views/Registration папку.

Если вы хотите поставить _LogIn.cshtml в Views/Partial папку, то вы можете получить доступ к частичным видом, указав полный путь, как показано ниже

public ActionResult ReturnPartial() 
{ 
    return PartialView("~/Views/Partial/_LogIn.cshtml"); 
} 
Смежные вопросы