首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MVC 4中从控制器调用JavaScript函数?

如何在MVC 4中从控制器调用JavaScript函数?
EN

Stack Overflow用户
提问于 2015-04-21 06:46:03
回答 2查看 9.5K关注 0票数 0

我是MVC的新手,所以请忽略我的错误。我想从控制器调用一个JavaScript函数,我试着调用JavaScript函数,但是没有找到任何合理的解决方案。请帮忙,这是我的密码。

代码语言:javascript
运行
复制
 [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);
    }
EN

回答 2

Stack Overflow用户

发布于 2015-04-21 06:56:35

这不是一个好的实践.

您应该避免混淆控制器代码中的javascript,这正是MVC构建的目的。分离关注点。

你能做什么?传递要在ViewBag或ViewData中显示的消息。在视图端的脚本标记中接收此消息(将其存储在javascript变量中)。检查消息是否为非空消息,显示为警报状态。

View.cshtml

代码语言:javascript
运行
复制
<script>
var msg='@ViewBag.Message';
if(msg && msg.length>0)
  alert(msg);
</script>
票数 1
EN

Stack Overflow用户

发布于 2015-04-21 06:55:45

你有两种选择。

选项#1

使用jquery调用调用控制器方法,然后在成功方法中,您可以启动js方法。

选项2

在cshtml页面的document.ready事件中,您可以这样做

代码语言:javascript
运行
复制
$.document.ready(function(){
   var msg = '@ViewBag.Message'
   if(msg != undefined && msg !== "")
       alert(msg);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29764814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档