無料の Web サイトとして Azure でホストされている Web サイトを構築しようとしています。MVC4 を使用し、KnockoutMVC を使用しています。Web サイトは、コントローラーから 4 秒ごとにテーブルを更新しています。コードはローカルでは問題なく実行されますが、Azure Web サイトにデプロイすると、更新が処理されません。
私は今、完全に新しい MVC 4 プロジェクトを開始しました。ノックアウトを使用したいくつかの単純な関数で、現在の時刻を表示し、コントローラーから 0.5 秒ごとにこれを更新します。適切なウェブサイト。同じ問題が発生しており、ko.ServerAction 呼び出しが JavaScript 関数を停止しているように見えます。
意見
@using PerpetuumSoft.Knockout
@model MVCHelloWorld.Models.HelloWorldModel
@{
var ko = Html.CreateKnockoutContext();
}
<script type="text/javascript">
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
// add a zero in front of numbers<10
m = checkTime(m);
s = checkTime(s);
document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
@ko.ServerAction("Index", "HelloWorld");
t = setTimeout(function() { startTime(); }, 500);
}
function checkTime(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
</script>
<body onload="startTime()">
<h2>Hello World - 2</h2>
<div id="time"></div>
<label>Knockout time</label>
@ko.Html.Span(m => m.Time)
</body>
@ko.Apply(Model)
コントローラ
namespace MVCHelloWorld.Controllers
{
public class HelloWorldController : BaseController
{
public HelloWorldModel model = new HelloWorldModel();
public ActionResult Index()
{
GetTimeDoCalculation();
return View();
}
public void GetTimeDoCalculation()
{
model.Time = DateTime.Now.ToString("H:mm:ss");
}
}
}
モデル
namespace MVCHelloWorld.Models
{
public class HelloWorldModel
{
public string Time { get; set; }
}
}