使用 jquery mobile MVC 刷新时,Raty 星级评分消失
Posted
技术标签:
【中文标题】使用 jquery mobile MVC 刷新时,Raty 星级评分消失【英文标题】:Raty stars rating disappears on refresh with jquery mobile MVC 【发布时间】:2014-07-06 19:58:08 【问题描述】:使用 jquery mobile 刷新时,Raty 星级评分会消失。
代码:
布局:
<body>
<div data-role="page">
<div data-role="header" data-position="fixed" style="height:12px"></div>
<div class="ui-content" role="main">@RenderBody()</div>
<div data-role="footer" data-position="fixed" style="text-align:center;"></div>
</div>
</body>
投票页面:
@
Layout = "~/Views/Shared/_Layout.Mobile.cshtml";
<script>
$('#star').raty(
number: 5,
path: '/Images',
size: 24,
width: 150,
click: function (score)
$("#Valor").val(score);
);
</script>
@using (Html.BeginForm("AvaliarOrador", "Mobile", FormMethod.Post, new @id = "frmAvaliarOrador" ))
<input type="hidden" id="Valor" name="Valor" />
<div id="star" style="padding-top: 20px; padding-bottom: 10px; margin-left: auto; margin-right: auto; cursor: pointer; width: 170px"></div>
如果我刷新页面,星星会消失,我必须再次返回主页,刷新并重新开始。
【问题讨论】:
对于您发布的代码,您的期望是什么?您是否希望页面继续显示您最初选择的星数?您是否将星选择保留在某处,以便在刷新时重新显示? 嗨,谢谢。是的,我想在页面刷新后显示星星。如果之前的选择会在那里,那就太好了,但现在最重要的是显示它们,因为它们消失了。 【参考方案1】:据我所知,这不是 ASP.NET 问题,很可能是 jQuery Mobile 问题。
要理解这个问题,您需要了解 jQuery Mobile 如何处理页面和 javascript。它使用 AJAX 将页面加载到 DOM 中。
首页正常加载。它的 HEAD 和 BODY 被加载到 DOM 中。该内容将保留在那里(除非页面被刷新)以等待进一步的内容加载。加载第二个页面时,只有它的 BODY 内容被加载到 DOM 中,当我说它的 BODY 内容时,我指的是带有属性 data-role=”page” 及其内部内容的 DIV。
这听起来可能没什么问题,但您应该三思而后行。如果我们有几个 HTML 页面,并且每个页面都有一些独特的东西,假设只在该页面执行期间使用不同的 JavaScript,更不用说额外的 CSS 文件了。在这些文件的 HEAD 中找到的所有内容都将被丢弃,并且其 JavaScript 不会被执行。刷新页面时也是如此。
阅读更多相关信息here + 解决方案。
【讨论】:
以上是关于使用 jquery mobile MVC 刷新时,Raty 星级评分消失的主要内容,如果未能解决你的问题,请参考以下文章
单击按钮时转到下一页并刷新上一个 Jquery Mobile
完整功能中的ajax调用后刷新jquery mobile listview不起作用
添加项目并“刷新”脚本以设置样式时,Jquery Mobile 复选框列表不会更新