【问题标题】:asp mvc3 : load page to certain element idasp mvc3:将页面加载到某个元素 id
【发布时间】:2011-10-20 00:23:14
【问题描述】:

我正在使用 asp.net mvc3 构建一个移动站点,并且刚刚开始了解 mvc 框架。我有一个要求,我不能使用 javascript,因为有些手机不兼容。我有一个正在回发中验证的表单。如果验证无效,我想将页面重新加载到表单而不是页面顶部。是否可以让我的控制器告诉视图加载到表单 ID 而不是只说return View("ViewName");

感谢您的帮助, 乙

【问题讨论】:

    标签: asp.net-mvc-3 validation


    【解决方案1】:

    如果没有 javascript,最好的办法是使用 anchors:

    <a name="foo"></a>
    <form action="@Url.Action(null)#foo" method="post">
        ...
        <input type="submit" value="OK" />
    </form>
    

    当您提交表单时,它会发布到以下 url /Home/Index#foo,它应该会自动滚动浏览器到相应的锚点,该锚点位于表单顶部。

    【讨论】:

    • 这给了我一个想法。我对同一页面有两个操作(一个用于发布,一个用于获取)。在回发中,如果出现错误,我会重定向回同一页面,但会将哈希附加到 url 的末尾。这会强制 get 操作触发并加载带有完整哈希的页面。
    【解决方案2】:

    查看这个不错的解决方案(还有很多,但那个非常高效且小巧):How do I maintain scroll position in MVC?

    【讨论】:

    • 感谢您的回复。我在上面编辑我的帖子;我的要求之一是我不能使用 js,因为并非所有移动平台都支持 js。不过我同意,这个解决方案非常简单但有效。
    • 如果 JS 被禁用,我认为除了使用 哈希之外没有其他方法。
    最近更新 更多