我主要是想在a.aspx里面使用jquery load方法加载b.aspx,在b页中包含一个form,当我在a页里面提交的时候,怎么防止浏览器跳转呢?这个问题困扰我很久了,mvcjquery浏览器

解决方案 »

  1.   

    iframe
    你的问题不是mvc,是webform
      

  2.   

    b.aspx也用AJAX实现表单数据的提交。
      

  3.   

    我用的是MVC,只不过视图里面的文件都是带了ASPX后缀,所以我这样写了的,主要是我在a里面用load装载b页(里面包括form,submit提交按钮),然后提交,这样浏览器会自动跳转到form的action地址,我试过在b页里面用ajaxSubmit提交方式,但是这样又提交不成功的,我试了很多次,iframe倒是有过用这个的想法,我用load方法把页面装入div里面了,如果别的办法不行,只有用iframe了
      

  4.   

    为了测试我用过很多方法了
    (1)我把使用ajaxsubmit提交方式的代码写在b页中的,我直接访问b页,这样能保证浏览器不跳转
    (2)但是我把b页装载进a页的时候,为了保证提交的话,浏览器还是要跳转
    都不知道怎么弄好的
      

  5.   

    这是 装在的 dd是一个部分视图
       dd页面 运行效果
      

  6.   

    写错了 这是Index 页面 用来装在 dd页面(dd是一个部分视图)
      

  7.   

    谢谢你!
    我用你的方法单独写了个测试例子,能够不跳转,
    但是在我的项目中,有以下两个控制器的操作
    public ActionResult StaffEdit(int id)
            {
              SqlStaff sqlstaff = new SqlStaff();
                Staff staff=sqlstaff.GetStaffByID(id);
                this.ViewBag.staff = staff;
                //设置部门下拉按钮
                SqlDep sqldep = new SqlDep();
                List<Dep> listdep = sqldep.GetAllDep();            List<SelectListItem> depitems = new List<SelectListItem>();
                foreach (Dep dep in listdep)
                    {
                    depitems.Add(new SelectListItem { Text = dep.Dep_Name, Value = dep.Dep_Name });
                    }
                for(int i=0;i<depitems.Count;i++)
                    {
                    if (depitems[i].Text == staff.Staff_Dep)
                    {
                    depitems[i].Selected = true;
                    break;
                        }
                    }
                this.ViewBag.listdep = depitems;
                //设置职位下拉按钮
                SqlPos sqlpos = new SqlPos();
                List<Pos> listpos = sqlpos.GetAllPos();            List<SelectListItem> positems = new List<SelectListItem>();
                foreach (Pos pos in listpos)
                    {
                    positems.Add(new SelectListItem { Text = pos.Pos_Name, Value = pos.Pos_Name });
                    }
                for (int i = 0; i < positems.Count; i++)
                    {
                    if (positems[i].Text == staff.Staff_Post)
                        {
                        positems[i].Selected = true;
                        break;
                        }
                    }
                this.ViewBag.listpos = positems;
                return PartialView();}
     [HttpPost]
            public EmptyResult StaffEdit()
            {
                var staff = new Staff();
                try
                {
                
                staff.Staff_ID = Convert.ToInt32(Request.Form["Staff_ID"]);
                staff.Staff_Name = Request.Form["Staff_Name"];
                staff.Staff_Gend = Request.Form["Staff_Gend"];
                staff.Staff_EntryTime = Convert.ToDateTime(Request.Form["EntryTime"]);
                staff.Staff_Dep = Request.Form["listdep"];
                staff.Staff_Post = Request.Form["listpos"];
                
                    // TODO: Add update logic here
                if (ModelState.IsValid)
                    {
                    SqlStaff sqlstaff = new SqlStaff();
                    sqlstaff.Update(staff);
                   
                    }
                return new EmptyResult();
               
                }
                catch
                {
                return new EmptyResult();
                }
            }以下是那个分部视图的代码
    <script type="text/jscript">
        $("#EntryTime").datebox({
            required: true,
            formatter: function (date) {
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date
                    .getDate();
                return y + '-' + m + '-' + d;
            },
            parser: function (date) {
                return new Date(Date.parse(date.replace(/-/g, "/")));
            }
        })    $(document).ready(function () {
            $("#sub").live("click", function (event) {
                event.preventDefault();
                $.post("/StaffMana/StaffEdit", {
                    Staff_ID: $("#Staff_ID").val(),
                    Staff_Name: $("#Staff_Name").val(),
                    Staff_Gend: $("#Staff_Gend").val(),
                    EntryTime: $("#EntryTime").val(),
                    listdep: $("#listdep").val(),
                    listpos: $("#listpos").val()
                });        });        /* $("#myform").submit(function () {
            debugger;
            $(this).ajaxSubmit();
            return false;
            });
            */
        });        
       
    </script>
    <%Html.BeginForm("StaffEdit", "StaffMana");%>
    <% var staff = this.ViewBag.staff as CheckAttendance.Models.Staff;
       var listdep = this.ViewBag.listdep as List<SelectListItem>;
       var listpos = this.ViewBag.listpos as List<SelectListItem>;%>
    <table>
        <tr>
            <td>
                用户ID:<%: staff.Staff_ID %>
                <%:Html.Hidden("Staff_ID",staff.Staff_ID.ToString()) %>
            </td>
            <td>
                姓名:<%: staff.Staff_Name %>
                <%:Html.Hidden("Staff_Name",staff.Staff_Name) %>
            </td>
        </tr>
        <tr>
            <td>
                性别:<%: staff.Staff_Gend %>
                <%:Html.Hidden("Staff_Gend",staff.Staff_Gend) %>
            </td>
            <td>
                入行时间:<%:Html.TextBox("EntryTime",staff.Staff_EntryTime.Date.ToString("yyyy-MM-dd"),new { @class="easyui-datebox"}) %>
            </td>
        </tr>
        <tr>
            <td>
                部门:<%:Html.DropDownList("listdep")%>
            </td>
            <td>
                职位:<%: Html.DropDownList("listpos")%>
            </td>
        </tr>
    </table>
    <input id="sub" type="submit" value="提交" />
    <% Html.EndForm();%>
    虽然我在 $.post("/StaffMana/StaffEdit", {
                    Staff_ID: $("#Staff_ID").val(),
                    Staff_Name: $("#Staff_Name").val(),
                    Staff_Gend: $("#Staff_Gend").val(),
                    EntryTime: $("#EntryTime").val(),
                    listdep: $("#listdep").val(),
                    listpos: $("#listpos").val()
                });里面把url写成了"/StaffMana/StaffEdit",但是提交后,浏览器跳转的地址变成了
    这个地址是我查询,输出数据到分部视图的地址。
    现在还是搞不懂
      

  8.   

    你这部分的代码 好像有误  你先吧这段代码 注释掉  然后再 post里写个 回调函数 看看 是否能弹出一个alert() 如果可以  拿就是你那段代码的错误     
    我觉得 你应该吧这段代码 写在这个 里边  
      

  9.   

    好像  凡是 用到jquery的选择器 都应该写在  $(function(){   .......   }); 
      

  10.   

    我的[httppost] StaffEdit这个函数没得返回值,而且,$.post能够正确提交的,因为数据库里面的东西都修改了的
      

  11.   

    问题解决了,是由于我把<script type="text/javascript">,写成了<script type="text/jscript">,导致浪费了我好长时间的啊