2015-04-21 2 views
0

Я новичок в MVC, поэтому, пожалуйста, игнорируйте мои ошибки. Я хочу вызвать функцию JavaScript из контроллера, я попробовал сам и искал функцию вызова JavaScript, но не нашел разумного решения. Пожалуйста, помогите Вот мой код.Как вызвать функцию JavaScript из контроллера в MVC 4?

[AllowAnonymous] 
    public ActionResult Index() 
    { 
     LogisticQuote lq = new LogisticQuote(); 
     if (Request.QueryString["token"] != null) 
     { 
      byte[] byteArray = Convert.FromBase64String(Request.QueryString["token"]); 
      string values = System.Text.Encoding.UTF8.GetString(byteArray); 
      EdgeMoveService serivice = new EdgeMoveService(); 
      Edge.Move.Common.Status.ServiceStatus serviceStatus = serivice.GetLogisticQuote(values.Split('&')[1].Split('=')[1], String.Empty, new TenantId(values.Split('&')[0].Split('=')[1]), "", 1, 1, new SaveId(values.Split('&')[2].Split('=')[1]), out lq); 
      if (serviceStatus.IsOkay) 
      { 
       TimeSpan difference = (DateTime.Now.Subtract(lq.CreatedTimeStamp)); 
       if (difference.TotalHours <= 24) 
       { 
        if (!lq.IsExpire) 
        { 
         return View("QuoteDetails", lq); 
        } 
        else 
        { 
         ViewBag.Message = "alertError('" + String.Empty + "');"; 
         return View("ExpireLinkNotification", lq); 
        } 
       } 
       else 
       { 
        return View("ExpireLinkNotification", lq); 
       } 
      } 
     } 
     return View("Startup", lq); 
    } 

ответ

0

У вас есть два варианта сделать это.

Вариант № 1

Вызвать метод управления с помощью JQuery Ajax вызова, а затем в методе успеха вы можете запустить свой метод JS.

Вариант № 2

В document.ready случае вашей страницы cshtml, вы можете сделать, как этот

$.document.ready(function(){ 
    var msg = '@ViewBag.Message' 
    if(msg != undefined && msg !== "") 
     alert(msg); 
}); 
1

Это не является хорошей практикой.

Вам следует избегать испортить javascript в вашем коде контроллеров, для чего создан MVC. Разделение проблем.

Что вы можете сделать? Передайте сообщение, которое будет отображаться в ViewBag или ViewData. Получите это сообщение в теге скрипта на стороне представления (сохраните его в переменной javascript). Проверьте, не является ли сообщение непустым, покажите его в сообщении.

View.cshtml

<script> 
var msg='@ViewBag.Message'; 
if(msg && msg.length>0) 
    alert(msg); 
</script> 
Смежные вопросы