1

我对 jQuery mobile 还很陌生,所以请原谅任何疏忽。

我正在创建一个移动应用程序,其中包含一系列包含信息和表单的页面。在最简单的情况下,第一页有一个文本框来记录位置,然后通过表单提交到控制器。当控制器保存此信息时,它会重定向到另一个操作。

    using (Html.BeginForm("Index", "Controller"))
    {
        @Html.ValidationSummary("Please correct the errors below")

            <div data-role="fieldcontain">
            @Html.LabelFor(l => l.Location)
            @Html.TextBoxFor(m => m.Location, new { placeholder = "Type Current Location" })
        </div>

        <input type="submit" data-icon="check" data-iconpos="right" value="Begin" />
    }

提交帖子后,控制器执行操作,然后返回:

return RedirectToAction("Search");

由于这是通过表单和回发完成的,因此它只是加载新页面而不是使用 jQuery 转换。

我想做的是在从起始页面到搜索页面时使用过渡。

我查看了其他各种问题,这些问题建议将信息添加到表单的路由值中以附加data-transition标签,例如:

using (Html.BeginForm("Login", "Account", FormMethod.Post, new Dictionary<string, object>{{ "data-transition", "pop" }} ))

或诸如

using (Html.BeginForm("Login", "Account", FormMethod.Post, new { data_transition = "pop" } ))

但这对我不起作用。

从其他谷歌搜索等听起来这应该是可能的,但想知道是否由于我发布的方式,然后从控制器重定向它不会工作。

然后我认为,由于转换的工作方式,通过将下一页加载到 DOM 中,然后可以对其进行动画处理,我必须通过 Ajax 执行此操作。所以与其。使用一个@Html.BeginFormHelper,然后使用 jQuery 附加到它上面,这样表单就可以$.Post代替它。此时我试图返回一个像this question这样的JavascriptResult但是浏览器要么试图下载一个脚本文件,要么它只是加载了在页面中发回的文本,没有别的。

但是,当我查看这个问题时, Darin 的回答指出,如果我只想重定向页面,那么实际上不需要使用 Ajax。我同意这一点,所以看起来我走错了方向。

有人可以澄清一下我正在尝试做的事情是否可以通过带有 jQ​​uery mobile 的 Posting 和 MVC,或者我是否必须进行一些繁重的代码修改来重新工作我的页面流程以便可以使用转换?

4

0 回答 0