您可以将当前屏幕位置的语言发送回控制器以更改语言-类似这样->链接
将结果存储到一个临时对象中(即 TempData ["scrollTo"])。
在您看来,检查 TempData["scrollTo"] 是否为空,如果不是,请导航到该位置(使用 jquery)
编辑:
像这样的东西:
在视图上:(将其与您的语言绑定单击)
var screenTopPosition = $(document).scrollTop();
//--Send this var to your controller as url param or w/e you prefer
在控制器上
TempData["scrollTo"] = position; //where position is the param you received from the view
再次在视图上:(使用 Razor)
$(function(){
@if (TempData["scrollTo"]!=null)
{
var screenTop = @TempData["scrollTo"];
$('#content').css('top', screenTop); //replace #content with your main div
}
});
添加:
要使用 Html Helper 发送 java-script var,您需要这样的东西(视图):
<div style="height:1000px">
test
</div>
<div style="height:1000px">
<a id="link" href="#">
Click me
</a>
</div>
@section scripts{
<script>
var link = '@Url.Action("ActionName", "ControllerName", new { screenPosition = 123 })'
$(function () {
$("#link").click(RedirectWithScreenPos);
});
function RedirectWithScreenPos() {
var screenPos = $(document).scrollTop();
link = link.replace('123', screenPos);
window.location.href = link;
}
</script>
}