Asp.net mvc 4 提交时的MVC4 Ajax bouble结果

Asp.net mvc 4 提交时的MVC4 Ajax bouble结果,asp.net-mvc-4,Asp.net Mvc 4,我通过VS2012对web MVC4进行编码。我使用Ajax在列表页面中分页,当Ajax工作是双重结果时。下面是我的代码: 这是一种观点: <div id="result"> <% using (Ajax.BeginForm("Paging","pa",new AjaxOptions{UpdateTargetId="result"})){ %> <table>...<table> <div class="Paging"><%= V

我通过VS2012对web MVC4进行编码。我使用Ajax在列表页面中分页,当Ajax工作是双重结果时。下面是我的代码:

这是一种观点:

<div id="result">
<% using (Ajax.BeginForm("Paging","pa",new AjaxOptions{UpdateTargetId="result"})){ %>
<table>...<table>
<div class="Paging"><%= ViewBag.PhanTrang %></div>
<%} %></div>
<script>
$(function () {
        $('.a_pt').click(function () {
            var _val = $(this).data("id");
            $.ajax({
                url: this.action,
                type: this.method,
                data: { id: _val },
                success: function (result) {
                    $('#result').html(result);
                }
            });
            return false;
        });
    });
</script>
这是第一个结果:

<body>
<p>...</p>
<div id="result">
<form action=.............></form>
</div>

这是第二个结果:

<body>
<p>...</p>
<div id="result">
<form action=.............>
___<body>
___<p>...</p>
___<div id="result">
___<form action=.............></form>
___</div>
</form>
</div>

___ ___

___ ___ ___

请帮帮我。!谢谢

我认为您正在两次更新目标id(#结果)。要么删除javascript中的success函数,要么删除Ajax选项中的UpdateTargetId


O

创建一个名为:
WhateverList.cshtml

将其放在局部视图中:

<% using (Ajax.BeginForm("Paging","pa",new AjaxOptions{UpdateTargetId="result"})){ %>
<table>...<table>
<div class="Paging"><%= ViewBag.PhanTrang %></div>
<%} %></div>
您只需要
jQUery Ajax
Ajax.BeginForm
而不是两者:

我建议您在这种情况下使用jQuery:

<script>
$(function () {
        $('.a_pt').click(function () {
            var _val = $(this).data("id");
            $.ajax({
                url: this.action,
                type: this.method,
                data: { id: _val },
                success: function (result) {
                    $('#result').html(result);
                }
            });
            return false;
        });
    });
</script>

$(函数(){
$('.a_pt')。单击(函数(){
var _val=$(此).data(“id”);
$.ajax({
url:this.action,
类型:this.method,
数据:{id:_val},
成功:功能(结果){
$('#result').html(result);
}
});
返回false;
});
});
并从PartialView中删除Ajax.BeginForm:

因此,局部视图只是:

@model SelectList
    <table>...<table>
    <div class="Paging"><%= ViewBag.PhanTrang %></div>
@model SelectList
...

当您返回
View()
时,它将呈现页面的_Layout.cshtml,并返回
标记。但是return
PartialView()
只返回部分视图的HTML内容,而不返回布局.cshtml

如果使用Ajax加载视图,则应将其创建为部分视图。然后从控制器使用return PartialView(_liststuden)这是一个视图还是一个局部视图?即视图。你能告诉我更多吗?我照你说的做了,但没有做。我认为jqueryajax有问题。你有skype吗。?给我。我照你说的做了,但没有做。我认为jqueryajax有问题。你有skype吗?给我?
public ActionResult WhateverList(string id)
{
demoMVC4Entities db = new demoMVC4Entities();
var _listProvince = db.T_Provinces;
ViewBag.ddl_Province = new SelectList(_listProvince, "Province_ID", "Province_Name");
var _listStudent = db.T_Student.OrderBy(n => n.MA).Skip((_pageIndex - 1) * pageSize).Take(pageSize);
return PartialView(_listStudent);
}
<script>
$(function () {
        $('.a_pt').click(function () {
            var _val = $(this).data("id");
            $.ajax({
                url: this.action,
                type: this.method,
                data: { id: _val },
                success: function (result) {
                    $('#result').html(result);
                }
            });
            return false;
        });
    });
</script>
@model SelectList
    <table>...<table>
    <div class="Paging"><%= ViewBag.PhanTrang %></div>