维护MVC页面位置
BeginCollectionItem Maintain Page Position MVC 5
我试图找到最好的方法(任何在这一点上),其中保持页面滚动位置时,从列表中删除一个项目使用beginCollectionItem。
最初我认为这是由于我的其他javascript/jQuery代码在我的主要项目(它仍然可能是一个因素),但当我在一个新项目中重新创建的情况下只使用BCI代码(索引,两个部分,控制器和模型),当从任何一个列表中删除一个项目时,页面会再次跳转到顶部,我真的需要(想要)这停止,我怎么能做到这一点?
我已经看到了这个问题和顶部的答案,我不知道如何正确实现,或者即使它仍然有效,第二个答案,使用下面的JS我在我的_Layout
中测试过,在budles
中没有解决这个问题。
$(document).scroll(function () {
localStorage['page'] = document.URL;
localStorage['scrollTop'] = $(document).scrollTop();
});
$(document).ready(function () {
if (localStorage['page'] == document.URL) {
$(document).scrollTop(localStorage['scrollTop']);
}
});
学生部分@model UsefulCode.Models.Person
<div class="editorRow">
@using (Html.BeginCollectionItem("students"))
{
<div class="ui-grid-c ui-responsive">
<div class="ui-block-a">
<span>
@Html.TextBoxFor(m => m.firstName)
</span>
</div>
<div class="ui-block-b">
<span>
@Html.TextBoxFor(m => m.lastName)
</span>
</div>
<div class="ui-block-c">
<span>
<span class="dltBtn">
<a href="#" class="deleteRow">X</a>
</span>
</span>
</div>
</div>
}
</div>
老师部分
@model UsefulCode.Models.Person
<div class="editorRow">
@using (Html.BeginCollectionItem("teachers"))
{
<div class="ui-grid-c ui-responsive">
<div class="ui-block-a">
<span>
@Html.TextBoxFor(m => m.firstName)
</span>
</div>
<div class="ui-block-b">
<span>
@Html.TextBoxFor(m => m.lastName)
</span>
</div>
<div class="ui-block-c">
<span>
<span class="dltBtn">
<a href="#" class="deleteRow">X</a>
</span>
</span>
</div>
</div>
}
</div>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@model UsefulCode.Models.Register
<div id="studentList">
@using (Html.BeginForm())
{
<div id="editorRowsStudents">
@foreach (var item in Model.students)
{
@Html.Partial("StudentView", item)
}
</div>
@Html.ActionLink("Add", "StudentManager", null, new { id = "addItemStudents", @class = "button" });
}
</div>
<div id="teacherList">
@using (Html.BeginForm())
{
<div id="editorRowsTeachers">
@foreach (var item in Model.teachers)
{
@Html.Partial("TeacherView", item)
}
</div>
@Html.ActionLink("Add", "TeacherManager", null, new { id = "addItemTeachers", @class = "button" });
}
</div>
@section scripts {
<script type="text/javascript">
$(function () {
$('#addItemStudents').on('click', function () {
$.ajax({
url: '@Url.Action("StudentManager")',
cache: false,
success: function (html) { $("#editorRowsStudents").append(html); }
});
return false;
});
$('#editorRowsStudents').on('click', '.deleteRow', function () {
$(this).closest('.editorRow').remove();
});
$('#addItemTeachers').on('click', function () {
$.ajax({
url: '@Url.Action("TeacherManager")',
cache: false,
success: function (html) { $("#editorRowsTeachers").append(html); }
});
return false;
});
$('#editorRowsTeachers').on('click', '.deleteRow', function () {
$(this).closest('.editorRow').remove();
});
});
</script>
}
除了给自己造成痛苦之外,我现在感到很轻松。将return false;
添加到删除操作解决了这个问题,它存在于添加操作上,但从盯着它几个小时,我只是假设它在那里。
如果有更好的答案,请把它写进去,因为这只适用于这部分代码。
下面是答案代码:
$('#addItemStudents').on('click', function () {
$.ajax({
url: '@Url.Action("StudentManager")',
cache: false,
success: function (html) { $("#editorRowsStudents").append(html); }
});
return false;
});
$('#editorRowsStudents').on('click', '.deleteRow', function () {
$(this).closest('.editorRow').remove();
return false; // add this
});
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 将Javascript数组发送到控制器ASP.NET MVC
- 循环比赛位置算法
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- MVC客户端验证的某个位置缺少链接
- 必应地图未使用 asp.net MVC 显示位置
- “样式”代码在 MVC 模式中的位置
- 在回发(提交)时保持表单位置 asp.net MVC
- Javascript MVC -观察者位置
- 在MVC中存储全局状态变量的位置以及如何传递它
- 维护MVC页面位置
- 模型-视图-控制器- JavaScript在web应用的MVC模式中处于什么位置?
- 从窗口传递多个参数.位置到动作mvc