2015-12-07 85 views
-4

我正在寫一個腳本,我想向視圖顯示一條消息,然後開始我的操作。但它沒有顯示任何東西,因爲我的執行阻止了我的啓動消息。我不想使用jquery/javascript。開始運行時顯示MVC消息

林在我家/索引控制器

return View(model: "Synck started, " + DateTime.Now.ToString("yyyy-MM-dd 
    HH:mm:ss")); 

嘗試這種在我看來

 <div id="txt"> 
      @Model  // Synck started, 2015-10-10 10:10:10 
      @Html.Action("Start", "Home") 
     </div> 
+0

爲什麼你不想使用jquery/JavaScript的?我很好奇 – Shyju

+0

它在一個沒有JavaScript等的服務器上啓動。以前使用jQuery,但不得不每個月手動啓動它。我正在合成13GB的數據,所以我認爲startmessage會很好。 – kuken

+0

javascript/jquery在客戶端。看到我發佈的答案。 – Shyju

回答

-1

你可以嘗試發送要顯示的消息,並準備好ViewData的

您的控制器:

controllerName() 
{ 
    ViewData["Message"] ="Synck started, " +  DateTime.Now.ToString("yyyy-MM-dd 
     HH:mm:ss"; 

return View(); 
} 

您的看法:

<div id="txt"> 
      @ViewData["Message"]  // Synck started, 2015-10-10 10:10:10 
      @Html.Action("Start", "Home") 
     </div> 
+0

同樣的結果,我想我會發送我的synkstart代替。無法讓它在沒有jQuery的情況下工作。 – kuken

+1

你的答案與 –

+0

相比沒有什麼不同,但上面的答案正是我的意思 –

0

理想情況下,你應該做的事情是保持你的長期運行的代碼到一個單獨的方法和異步從UI調用它。你可以使用jQuery ajax來做到這一點。

public ActionResult Index() 
{ 
    return View(); 
} 
public ActionResult SyncMydata() 
{ 
    //Execute your long running code here and return something as needed. 
} 

而在你的索引視圖,

<div id="status"></div> 
<script type="text/javascript"> 
$(function(){ 

    var url="@Url.Action("SyncMydata","Home")"; 

    $("#status").html("Started syncing at "+new Date().toLocaleString()); 
    $.post(url,function(res){ 
     $("#status").html("Sync completed")); 
    }); 


}); 
</script> 

如果你願意,你可以從索引操作(服務器端)的開始時間,而不是使用JavaScript的時間。

0

這個工作對我來說...

的控制器::

// GET: Home/Index 
public ActionResult Index() 
{ 
    ViewBag.Message = "Synck started, " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 
    return View(); 
} 

的觀點:

@ViewBag.Message