Javascript 如何在ASP.NET MVC中以幻灯片形式显示不同的视图
我正在开发一个包含多个视图的健康和监控仪表板,并希望以幻灯片形式定期逐个显示所有视图。Javascript 如何在ASP.NET MVC中以幻灯片形式显示不同的视图,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我正在开发一个包含多个视图的健康和监控仪表板,并希望以幻灯片形式定期逐个显示所有视图。 我们的要求是在团队空间的电视上播放此幻灯片,以便主动解决问题。我把设置超时和设置间隔作为一个选项。寻找实现此类功能的最佳实践或解决方案。任何帮助或建议都将不胜感激。您忘记包含AJAX标记;-) 您可以执行基于AJAX的调用来更新和显示您可能拥有的许多面板(div?)中的一个 经典ASP.NET- ASP MVC 3(jquery)- ASP MVC(局部视图)- ASP MVC(局部视图)- 不确定你的要求是
我们的要求是在团队空间的电视上播放此幻灯片,以便主动解决问题。我把设置超时和设置间隔作为一个选项。寻找实现此类功能的最佳实践或解决方案。任何帮助或建议都将不胜感激。您忘记包含AJAX标记;-) 您可以执行基于AJAX的调用来更新和显示您可能拥有的许多面板(div?)中的一个 经典ASP.NET- ASP MVC 3(jquery)- ASP MVC(局部视图)- ASP MVC(局部视图)-
不确定你的要求是什么。。(图形渲染?只是颜色?您忘记包含AJAX标记;-) 您可以执行基于AJAX的调用来更新和显示您可能拥有的许多面板(div?)中的一个 经典ASP.NET- ASP MVC 3(jquery)- ASP MVC(局部视图)- ASP MVC(局部视图)- 不确定你的要求是什么。。(图形渲染?只是颜色?您可以使用。为什么
$interval
服务,允许您每x毫秒执行一次代码$http
服务,简化了在ASP.NET MVC中进行ajax调用public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public PartialViewResult CurrentDateTimeView()
{
string date = DateTime.Now.ToString();
return PartialView("~/Views/Home/_CurrentDateTimeView.cshtml", date);
}
public PartialViewResult SomeOtherView()
{
return PartialView("~/Views/Home/_SomeOtherView.cshtml");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js"></script>
<script type="text/javascript">
var $slider = null;
var app = angular.module('app', []);
app.controller('controller', function ($scope, $http, $interval, $q) {
//Loop - executes every 20 seconds
$interval(function () {
angular.element(document.querySelector('#dashboard')).empty();
$http.get("/Home/CurrentDateTimeView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
$http.get("/Home/SomeOtherView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
if ($slider == null) {
$slider = $('.sliderDashboard').bxSlider({
slideWidth: 200,
minSlides: 1,
maxSlides: 1,
slideMargin: 10
});
}
else {
$slider.reloadSlider();
}
});
});
}, 10000);
});
</script>
<div ng-app="app" ng-controller="controller">
<div class="sliderDashboard" id="dashboard">
</div>
</div>
局部视图1:@Model
局部视图2:其他视图…
索引视图:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public PartialViewResult CurrentDateTimeView()
{
string date = DateTime.Now.ToString();
return PartialView("~/Views/Home/_CurrentDateTimeView.cshtml", date);
}
public PartialViewResult SomeOtherView()
{
return PartialView("~/Views/Home/_SomeOtherView.cshtml");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js"></script>
<script type="text/javascript">
var $slider = null;
var app = angular.module('app', []);
app.controller('controller', function ($scope, $http, $interval, $q) {
//Loop - executes every 20 seconds
$interval(function () {
angular.element(document.querySelector('#dashboard')).empty();
$http.get("/Home/CurrentDateTimeView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
$http.get("/Home/SomeOtherView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
if ($slider == null) {
$slider = $('.sliderDashboard').bxSlider({
slideWidth: 200,
minSlides: 1,
maxSlides: 1,
slideMargin: 10
});
}
else {
$slider.reloadSlider();
}
});
});
}, 10000);
});
</script>
<div ng-app="app" ng-controller="controller">
<div class="sliderDashboard" id="dashboard">
</div>
</div>
var$slider=null;
var-app=angular.module('app',[]);
app.controller('controller',function($scope,$http,$interval,$q){
//循环-每20秒执行一次
$interval(函数(){
元素(document.querySelector('#dashboard')).empty();
$http.get(“/Home/CurrentDateTimeView”).success(函数(数据、状态、标题、配置){
var view=“”+数据+”;
var dashboard=angular.element(document.querySelector(“#dashboard”);
附加(视图);
$http.get(“/Home/SomeOtherView”).success(函数(数据、状态、标题、配置){
var view=“”+数据+”;
var dashboard=angular.element(document.querySelector(“#dashboard”);
附加(视图);
如果($slider==null){
$slider=$('.sliderDashboard').bxSlider({
滑动宽度:200,
米斯利德斯:1,
maxSlides:1,
幻灯片摘要:10
});
}
否则{
$slider.reloadsloider();
}
});
});
}, 10000);
});
很明显,你所问的问题可以用很多不同的方式解决,这只是其中之一。您可能需要稍微调整它,以适应您的解决方案,或者只使用帮助您的部分并更改其余部分。这取决于您可以使用。为什么
$interval
服务,允许您每x毫秒执行一次代码$http
服务,简化了在ASP.NET MVC中进行ajax调用public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public PartialViewResult CurrentDateTimeView()
{
string date = DateTime.Now.ToString();
return PartialView("~/Views/Home/_CurrentDateTimeView.cshtml", date);
}
public PartialViewResult SomeOtherView()
{
return PartialView("~/Views/Home/_SomeOtherView.cshtml");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js"></script>
<script type="text/javascript">
var $slider = null;
var app = angular.module('app', []);
app.controller('controller', function ($scope, $http, $interval, $q) {
//Loop - executes every 20 seconds
$interval(function () {
angular.element(document.querySelector('#dashboard')).empty();
$http.get("/Home/CurrentDateTimeView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
$http.get("/Home/SomeOtherView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
if ($slider == null) {
$slider = $('.sliderDashboard').bxSlider({
slideWidth: 200,
minSlides: 1,
maxSlides: 1,
slideMargin: 10
});
}
else {
$slider.reloadSlider();
}
});
});
}, 10000);
});
</script>
<div ng-app="app" ng-controller="controller">
<div class="sliderDashboard" id="dashboard">
</div>
</div>
局部视图1:@Model
局部视图2:其他视图…
索引视图:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public PartialViewResult CurrentDateTimeView()
{
string date = DateTime.Now.ToString();
return PartialView("~/Views/Home/_CurrentDateTimeView.cshtml", date);
}
public PartialViewResult SomeOtherView()
{
return PartialView("~/Views/Home/_SomeOtherView.cshtml");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js"></script>
<script type="text/javascript">
var $slider = null;
var app = angular.module('app', []);
app.controller('controller', function ($scope, $http, $interval, $q) {
//Loop - executes every 20 seconds
$interval(function () {
angular.element(document.querySelector('#dashboard')).empty();
$http.get("/Home/CurrentDateTimeView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
$http.get("/Home/SomeOtherView").success(function (data, status, headers, config) {
var view = "<div class='slide'>" + data + "</div>";
var dashboard = angular.element(document.querySelector('#dashboard'));
dashboard.append(view);
if ($slider == null) {
$slider = $('.sliderDashboard').bxSlider({
slideWidth: 200,
minSlides: 1,
maxSlides: 1,
slideMargin: 10
});
}
else {
$slider.reloadSlider();
}
});
});
}, 10000);
});
</script>
<div ng-app="app" ng-controller="controller">
<div class="sliderDashboard" id="dashboard">
</div>
</div>
var$slider=null;
var-app=angular.module('app',[]);
app.controller('controller',function($scope,$http,$interval,$q){
//循环-每20秒执行一次
$interval(函数(){
元素(document.querySelector('#dashboard')).empty();
$http.get(“/Home/CurrentDateTimeView”).success(函数(数据、状态、标题、配置){
var view=“”+数据+”;
var dashboard=angular.element(document.querySelector(“#dashboard”);
附加(视图);
$http.get(“/Home/SomeOtherView”).success(函数(数据、状态、标题、配置){
var view=“”+数据+”;
var dashboard=angular.element(document.querySelector(“#dashboard”);
附加(视图);
如果($slider==null){
$slider=$('.sliderDashboard').bxSlider({
滑动宽度:200,
米斯利德斯:1,
maxSlides:1,
幻灯片摘要:10
});
}
否则{
$slider.reloadsloider();
}
});
});
}, 10000);
});
很明显,你所问的问题可以用很多不同的方式解决,这只是其中之一。您可能需要稍微调整它,以适应您的解决方案,或者只使用帮助您的部分并更改其余部分。这取决于您我有几个