寻找与Web表单中的updatepanel类似的解决方案效果,但对于MVC,下面有点关于我的问题。我确信有很多方法可以做到这一点,但理想情况下我想要最好和最正确的方式。
我看过this question但无法让它发挥作用。
更新 它可以回发; MVC等价。我只需要为用户的观点维护页面的位置。
我在我的索引页面底部尝试了以下但没有骰子。
@section Scripts
{
<script type="text/javascript">
window.scrollTo = function( x,y ) {
return true;
}
</script>
}
以及: 的控制器
ViewBag.JumpTo = "equipmentAnchor";
return RedirectToAction("Index");
索引
<div id="equipmentAnchor"></div>
@section Scripts
{
<script type="text/javascript">
$(document).ready(function () {
var JumpTo = '@ViewBag.JumpTo';
if (JumpTo != "") {
$(this).scrollTop($('#' + JumpTo).position().top);
}
});
</script>
}
实现这一目标的最佳/最简单方法是什么?
我已经看到有关AJAX在服务器上很重的报道,但没有过多关注,最好没有CSS技巧(如果有的话)。 JQuery不是我过于熟悉的东西,但可能会成为最好的解决方案,但不是特别精通它,所以不知道从哪里开始。
在下面的示例中是一个带有删除按钮的列表视图,该按钮返回到控制器以遍历列表并删除列表中的最后一个条目。但是,无论是添加,还是在这种情况下删除,页面都会在回发后跳转到索引页面的顶部。
我应该如何/可以阻止此回复并重新加载页面,或者至少阻止用户体验它?
示例代码:
索引:
<div class="List">
@{Html.RenderPartial("View", Model.List);}
</div>
部分
@using (Html.BeginForm("RemoveExisting", "PA_4"))
{
if (Model != null)
{
foreach (var ri in Model)
{
<div class="ui-grid-c ui-responsive">
<div class="ui-block-a">
<p>One</p>
<span>
@ri.One
</span>
</div>
<div class="ui-block-b">
<p>Two</p>
<span>
@ri.Two
</span>
</div>
</div>
}
}
if (Model.Count() > 0)
{
<div>
<input type="submit" value="Remove"/>
</div>
}
}
答案 0 :(得分:2)
如果有这个问题,这个答案here帮助了我。
从GitHub下载并将其转储到您的脚本文件夹中,并在@section Scripts
在视图底部如此:
@section Scripts
{
<script type="text/javascript" src="~/Scripts/maintainscroll.jquery.min.js">
</script>
}