我处境很棘手, 场景 - 有些小工具将在移动网站上显示。 2.其中一个小工具是RSS,用户可以为不同的主题添加多次,例如一个用于安全,一个用于新闻,一个用于事件。 3.因此我们有一个RSS部分视图,但如果用户有2个RSS小工具,则相同的部分视图应加载不同的小工具名称。这里的功能使用foreach循环正常工作。
@foreach (var rssFeed in Model.RSSFeedList)
{
<article class="bm2014_bigBoxWrap bm2014_bigBoxRSS bm2014_paginate">
<a href="#" id="btnRefresh" class="bm2014_refreshBtn" rel="external"><img src="~/Content/images/iconRefresh.png" width="20" height="20" alt="refresh icon" title="refresh icon"></a>
<div class="bm2014_expColCtrl">
<h1 class="bm2014_bigBoxHdr">
<span class="bm2014_hiddenHdr"> </span>
<!-- for markup validation -->
@if (rssFeed.Channel.Name == "xyznews")
{
<span>@Html.Label(Labels.Title_xyz)</span>
}
else if(rssFeed.Channel.Category=="xyzRSSFeed")
{
<!--<span>@Html.Label(Labels.xyz) - @rssFeed.Channel.Title</span>-->
<span>@rssFeed.Channel.Title</span>
}
<span class="bm2014_expColBtn"><img src="~/Content/images/iconPlus.png" width="32" height="32" alt="expand collapse icon" title="expand collapse icon"></span>
</h1>
<div class="bm2014_expColContent bm2014_bellnetRSSWrapper" id="bm2014_divBellnetRSS">
@Html.Partial("~/Views/Shared/_RSS.cshtml", rssFeed)
</div>
</div>
</article>
}
<!-- RSS Panel end here -->
如果我点击所选小工具的刷新按钮,则默认情况下只会选择一个RSS名称并加载内容,而不管选择的小工具是什么。
partialview页面代码 -
@model Models.RSSFeed
@{
Layout = null;
}
<script src="~/Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.multilevelpushmenu.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-simple-pagination-plugin.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.dataTables.js" type="text/javascript"></script>
<script type="text/javascript">
/* scripts to load after the DOM gets ready */
$(function () {
offCanvasMenu(); // trigger Javascript controlled OFF canvas menu after AJAX refresh
$.ajaxSetup({ cache: false });
$("article.bm2014_bigBoxRSS #btnRefresh").on('click', function (event) {
var $rssGadgetID = $(this).parents("article.bm2014_paginate").find("div#bm2014_divBellnetRSS");
var $rssGadgetLdr = $rssGadgetID.find("div#bm2014_gadgetLoader");
ajaxLoaderHeightCtrl($rssGadgetID, $rssGadgetLdr);
// AJAX control
$.ajax({
url: '@Url.Action("RefreshBellnetRSS", "Home", new { feedName = Model.Channel.FeedName })',
contentType: 'application/html; charaset=utf-8',
type: 'GET',
dataType: 'html',
success: function (result) {
$rssGadgetLdr.fadeOut(100, function () {
$rssGadgetID.html(result);
var moveRSS = $("article.bm2014_bigBoxWrap").css("float");
if (moveRSS == "left") {
mQueryAJAX("portrait", $rssGadgetID);
}
else if (moveRSS == "none") {
if (window.matchMedia("(orientation: portrait)").matches) {
mQueryAJAX("portrait", $rssGadgetID);
}
if (window.matchMedia("(orientation: landscape)").matches) {
mQueryAJAX("portrait", $rssGadgetID);
}
}
hideTableHeader();
});
},
error: function (xhr, status) {
alert(status);
}
});
});
});
</script>
<div class="bm2014_gadgetLoader" id="bm2014_gadgetLoader" style="display: none;">
<img src='@Url.Content("~/Content/Images/loaderGadget.gif")' width="48" height="48" alt="ajax loader image" title="ajax loader image">
</div>
<div class="bm2014_strategyContent">
@if (Model.url != null)
{
<table>
<thead>
<th>dummy header - to be hidden</th>
</thead>
<tbody>
@foreach (var url in Model.url)
{
<tr>
<td>
<a href="@url.URL" rel="external">@url.Name</a>
</td>
</tr>
}
</tbody>
</table>
}
</div>
需要帮助/建议
答案 0 :(得分:0)
如果我理解正确,您需要为3个RSS小工具提供3个刷新按钮,例如一个用于安全,一个用于新闻,一个用于事件。
在当前示例中,每次调用代码以应用click事件时,都会替换之前的事件和&#39; feedname&#39; url for ajax调用中的参数也会更新。
$(&#34; article.bm2014_bigBoxRSS#btnRefresh&#34;)。on(&#39; click&#39;,function(event){ ...... }
您需要能够区分刷新按钮并传递正确的参数。一种方法是在btnRefresh锚标记上使用data-feedname属性(如果使用HTML5)