Javascript 未进行MVC4Ajax调用

Javascript 未进行MVC4Ajax调用,javascript,jquery,html,ajax,asp.net-mvc,Javascript,Jquery,Html,Ajax,Asp.net Mvc,几天来,我一直在尝试修复我的应用程序中的一个问题,但我不知道发生了什么 我正在开发一个MVC4应用程序。我有一个视图,其中有一个div,我加载了更多的html,并在$(function(){…})上执行了一个ajax调用。ajax调用工作正常 当我进行第二次ajax调用时,问题就开始了。我将代码粘贴到下面:- 在主要观点中:- <div class="body" id="loadedData"> </div> <script type="text/javascr

几天来,我一直在尝试修复我的应用程序中的一个问题,但我不知道发生了什么

我正在开发一个MVC4应用程序。我有一个视图,其中有一个div,我加载了更多的html,并在
$(function(){…})上执行了一个ajax调用。ajax调用工作正常

当我进行第二次ajax调用时,问题就开始了。我将代码粘贴到下面:-

在主要观点中:-

<div class="body" id="loadedData">

</div>

<script type="text/javascript" charset="utf-8">
   $(function(){
      loadData("@Url.Action("Authorizations","User", new { id = Model.ID })");
   });

   function loadData(url){
      $.ajax({
        type: 'GET',
        url: url,
        success: function (data) {
            $("#loadedData").html(data);
        }
    });
   }
</script>

$(函数(){
loadData(“@Url.Action(“Authorizations”,“User”,new{id=Model.id})”);
});
函数加载数据(url){
$.ajax({
键入:“GET”,
url:url,
成功:功能(数据){
$(“#加载数据”).html(数据);
}
});
}
加载在div中的局部视图是这样的:

@if (ViewBag.UserAuths != null){
  <table>
      <tr>
          <th>
              Operations
          </th>
          <th></th>
      </tr>
      @foreach (var prod in ViewBag.UserAuths){
          <tr>
              <td>
                  @prod[0]
              </td>
              <td>
                 <a href="" onclick="loadData(@Url.Action("RevokeAccess", "User", new {    id = ViewBag.UserID, op = Int32.Parse(prod[1])}));">Remove</a>
              </td>
          </tr>
      }
  </table>
 }
@if(ViewBag.UserAuths!=null){
操作
@foreach(ViewBag.UserAuths中的var prod){
@产品[0]
}
}
当我单击ajax加载的HTML中的链接(删除)时,就会出现问题。当我点击时,页面“闪烁”,但什么也没发生。我在UserController中的RevokeAccess函数中设置了一个断点,它从不停止

请帮忙

编辑:


还有一件事,当我点击链接时,在Chrome控制台上会显示一条“uncaughtSyntaxerror:unexpectedtoken”消息,但它很快就消失了,我不知道为什么

在使用jQuery时,不要使用内联事件。使用jQuery绑定click事件。在获取局部视图时,可以使用更简单的
.load()

剧本


$(函数(){
$(“#loadedData”).load(@Url.Action(“Authorizations”,“User”,new{id=Model.id})”);
$(“#loadedData”)。在('单击','锚定',函数(事件){
event.preventDefault();//停止默认操作
$(“#加载数据”)。加载(
$(this).data('url'),//url
{id:$(this.data('id'),op:$(this.data('op')},//参数
函数(){
//执行任何操作(如果有)
}
);
})
});
将你的Partials改为

@if(ViewBag.UserAuths!=null){
操作
@foreach(ViewBag.UserAuths中的var prod){
@产品[0]
}
}

Add event.preventDefault()到load函数指定在ajax调用中传递的数据类型,如
dataType:“json”
当您单击锚点时,它是否正在调用loaddata??在ajax调用中提供数据类型和内容类型…@die8292:很高兴我能提供帮助:)
<script type="text/javascript">
   $(function(){
       $("#loadedData").load("@Url.Action("Authorizations","User", new { id = Model.ID })");      

       $("#loadedData").on('click', '.anchor', function(event){
            event.preventDefault();//Stop default action  
            $("#loadedData").load(
                $(this).data('url'),  //Url
                { id: $(this).data('id'), op : $(this).data('op')}, //Parameters
                function(){
                    //Perform any action if any
                }
            );
       })
   });

</script>
@if (ViewBag.UserAuths != null){
  <table>
      <tr>
          <th>
              Operations
          </th>
          <th></th>
      </tr>
      @foreach (var prod in ViewBag.UserAuths){
          <tr>
              <td>
                  @prod[0]
              </td>
              <td>
                 <a class='anchor' href="#" data-url='@Url.Action("RevokeAccess", "User")' data-id="@ViewBag.UserID" data-op="@Int32.Parse(prod[1])">Remove</a>
              </td>
          </tr>
      }
  </table>
 }