2016-05-16 66 views
0

我尝试使用jQuery ajax选择选项列表,但我需要帮助!VB NET上的错误500 JQUERY AJAX

这是错误

Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:20440/admin/cadastro.aspx/GetMarcas 

我的代码

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 

<head runat="server"> 
    <meta charset="utf-8" /> 
    <title></title> 
    <link href="../assets/css/bootstrap.min.css" rel="stylesheet" /> 
    <link href="../assets/css/font-awesome.min.css" rel="stylesheet" /> 
    <link href="../assets/css/estilo.css" rel="stylesheet" /> 
    <script src="../assets/js/jquery-1.9.1.min.js"></script> 
    <script src="../assets/js/bootstrap.min.js"></script> 
    <script type="text/javascript"> 



    $(document).ready(function() { 
     $.ajax({ 


type: "POST", 
      contentType: "application/json; charset=UTF-8", 
      url: "cadastro.aspx/GetMarcas", 
      data: "{}", 
      dataType: "json", 
      success: function (result) { 


$('#marca').empty(); 
       $('#marca').append("<option value='0'>--Select--</option>"); 
       $.each(result.d, function (key, value) { 
        $("#marca").append($("<option></option>").val(value.Codigo).html(value.Descricao)); 
       }); 
      } 
     }); 
    }); 
</script> 

</head> 
<body> 
<nav class="navbar navbar-inverse navbar-static-top"> 
    <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
     </div> 
     <div id="navbar" class="navbar-collapse collapse"> 
      <ul class="nav navbar-nav"> 
       <li><a href="index.aspx">DASHBOARD <i class="fa fa-bar-chart"></i></a></li> 
       <li><a href="cadastro.aspx">CADASTRO <i class="fa fa-plus-circle"></i></a></li> 
       <li><a href="listagem.aspx">ITEMS CADASTRADOS <i class="fa fa-eye"></i></a></li> 
      </ul> 

     </div> 
    </div> 
</nav> 
<div class="container"> 
    <div class="col-md-12"> 



     <form action="/" method="post"> 
      <div class="col-md-4"> 
       <label>Marca</label> 
       <select class="form-control" name="marca" id="marca" runat="server"> 
       </select> 
      </div> 
      <div class="col-md-4"> 
       <label>Modelo</label> 
       <select class="form-control" name="modelo" id="modelo" runat="server"> 
        <option value="value">text</option> 
       </select> 
      </div> 
      <div class="col-md-4"> 
       <label>Cor</label> 
       <select class="form-control" name="cor" id="cor" runat="server"> 
        <option value="value">text</option> 
       </select> 
      </div> 

      <div class="col-md-4"> 
       <label>Ano</label> 
       <input type="text" name="ano" id="ano" class="form-control" /> 
      </div> 

      <div class="col-md-4"> 
       <label>Placa</label> 
       <input type="text" name="placa" id="placa" class="form-control" /> 
      </div> 
     </form> 
    </div> 
</div> 

我控制器

Imports System.Collections.Generic 
Imports System.Configuration 
Imports System.Data 
Imports System.Data.SqlClient 
Imports System.Web.Services 
Partial Class admin_cadastro 
Inherits System.Web.UI.Page 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then marca() End 
End Sub 

Public Class Marca 
    Public Property Codigo() As Integer 
     Get 
      Return m_Codigo 
     End Get 
     Set(value As Integer) 
      m_Codigo = value 
     End Set 
    End Property 
    Private m_Codigo As Integer 
    Public Property Descricao() As String 
     Get 
      Return m_Descricao 
     End Get 
     Set(value As String) 
      m_Descricao = value 
     End Set 
    End Property 
    Private m_Descricao As String 
End Class 

<WebMethod> 
Public Shared Function GetMarcas() As List(Of Marca) 
    Dim dt As New DataTable() 
    Dim objMarca As New List(Of Marca)() 

    Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("conStr").ConnectionString) 
     Using cmd As New SqlCommand("exec sp_ListaMarcas", con) 
      con.Open() 
      Dim da As New SqlDataAdapter(cmd) 
      da.Fill(dt) 
      If dt.Rows.Count > 0 Then 
       For i As Integer = 0 To dt.Rows.Count - 1 
        objMarca.Add(New Marca() With { 
         .Codigo = Convert.ToInt32(dt.Rows(i)("Codigo")), 
         .Descricao = dt.Rows(i)("Descricao").ToString() 
        }) 
       Next 
      End If 
      Return objMarca 
     End Using 
    End Using 
End Function 





End Class 

我没有使用方法回传,我需要帮助雷加ding这个错误,以便从数据库中选择列表数据。

+0

您是否有关于服务器端发生的异常的更多信息? – PhilDulac

回答

0

这篇文章应该有很大的帮助的jQuery/Web表单的集成:

http://www.codeproject.com/Articles/95525/ASP-NET-and-jQuery-to-the-Max

你应该检查的第一件事是,如果你在你的GetMarcas方法添加一个断点到达服务器端。如果你达到目标,你将能够在方法中调试你的方式,并获得有关错误的更多信息。

看着你的代码,它可能和你发送来初始化命令的字符串参数一样简单。我的猜测是你想调用一个名为sp_ListaMarcas的存储过程。如果是这样,你不需要exec部分。您应该这样做:

Using cmd As New SqlCommand("sp_ListaMarcas", con)