2015-12-07 6 views
-4

Im, пишущий скрипт, хочу отобразить сообщение в представлении и затем начать действие. Но это ничего не показывает, потому что мое исполнение блокирует мое начало. Я не хочу использовать jquery/javascript.Показать сообщение MVC при запуске

Im пытается это в моем доме/индекс контроллера

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

Его началось на сервере без javascripts и т. Д. Раньше jQuery раньше, но ему приходилось вручную запускать его каждый месяц. Я синхронизирую 13 Гбайт данных, поэтому я думал, что 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

В идеале, что вы должны делать это держать свой длинный ходовой код в отдельный метод и асинхронно вызывать его из пользовательского интерфейса. Вы можете использовать jQuery ajax для этого.

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

А на ваш взгляд Index,

<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> 

Если вы хотите, вы можете получить стартовое время от индекса действия (со стороны сервера), а не с помощью яваскрипта времени.

0

Это работало для меня ...

Контроллер ::

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

Взгляд:

@ViewBag.Message 
Смежные вопросы