Javascript 未进行MVC4Ajax调用
几天来,我一直在尝试修复我的应用程序中的一个问题,但我不知道发生了什么 我正在开发一个MVC4应用程序。我有一个视图,其中有一个div,我加载了更多的html,并在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
$(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>
}