【发布时间】:2012-01-25 00:08:30
【问题描述】:
我有一个下拉列表,它可以自动提交表单并执行我在整个项目中通过部分视图使用的搜索,但它仅在我第一次使用时才有效,除非我刷新页面。这是一个带有 jQuery Mobile 的 MVC 4 项目。
这是我的部分视图中的代码,
<script type="text/javascript">
$(function () {
$("#CoastLineID").change(function () {
var actionUrl = $('#TheForm').attr('action') + '/' + $('#CoastLineID').val();
$('#TheForm').attr('action', actionUrl);
$('#TheForm').submit();
});
});
</script>
<p>
@using (Html.BeginForm("SearchCoast", "Home", FormMethod.Post, new { id = "TheForm" }))
{
@Html.DropDownList("CoastLineID", (SelectList)ViewBag.ArticleId, "Select a Coastline")
}
</p>
我想每次以某种方式加载使用局部视图的页面/视图时,我都需要能够刷新页面或列表。这是 jQuery 的问题吗???
任何想法,如果允许,我可以为该网站提供 URL?
更新/编辑
谢谢大家,
我遇到了一些混合 jQuery Mobile 和 MVC 的问题,主要是由于它们处理 URL 字符串的方式不同,所有这些都来自 15 年的 Web 开发。所有 jQuery Mobile 文档都处理经典的 URL 字符串,例如 about/us.html 这不是 MVC 方式!
这是我用于填充下拉列表的控制器代码,
var coastlines = db.CoastLines.Select(c => new { c.CoastLineID, c.CoastLineName });
ViewBag.CoastLineId = new SelectList(coastlines.AsEnumerable(), "CoastLineID", "CoastLineName", 0);
这是网站,
http://www.peninsulaguide.com.au/
单击“海滩搜索”,然后单击“选择海岸线”或“选择城镇”将起作用,但之后如果不刷新就什么也做不了。
有两个下拉菜单,但如果我删除一个也没有什么区别。
干杯,
迈克
【问题讨论】:
-
如果在表单调用的控制器中设置断点,它会被命中吗?据我所知,除非您采取措施阻止它,否则没有什么可以阻止您重新提交表单。在重新提交之前我已经构建了 jQuery 表单,我必须清除提交时的值以防止它。
-
据我所知,该 URL 会很有帮助并且是允许的。
标签: jquery asp.net-mvc mobile asp.net-mvc-4