gaojijiezx
2018-06-21 07:57
采纳率: 40%
浏览 2.1k
已采纳

C# MVC5 实现HTML页面中引用的javaScript文件中的变量的初始化

一个控制器的View视图页面,引用了一个自己写的js文件JavaScript.js,视图代码如下:


<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
    </div>

    <script src="~/Scripts/JavaScript.js"></script>
    <script type="text/javascript">
            Add();
    </script>
</body>
</html>

这个JavaScript.js文件内容如下:

a = 1;  //这个变量如何用服务器中在控制器的方法中赋予变量初始值
function Add() {
    alert(a + 123);
}

如何在这个视图的控制器方法中初始化引用的这个JavaScript.js中变量a的初始值

    public class TestController : Controller
    {
        // GET: Test
        public ActionResult Index()
        {
            return View();
        }
    }
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • wodexinhao 2018-06-21 08:18
    已采纳

    方法有很多,比如你可以用ViewBag

     public class TestController : Controller
        {
            // GET: Test
            public ActionResult Index()
            {
                        ViewBag.a = 1;
                return View();
            }
        }
    
    
    a = '@ViewBag.a';  //这个变量如何用服务器中在控制器的方法中赋予变量初始值
    function Add() {
        alert(a + 123);
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 在后台直接写你要的值然后传到前台,前台a来获取后台传的这个值。你试试

    评论
    解决 无用
    打赏 举报
  • wodexinhao 2018-06-21 08:19

    如果你是在某个Model中的变量,也可以返回Model,然后用这个Model去访问,当然也可以通过ajax请求数据,获取返回值然后赋值,你要什么方法给你什么方法

    评论
    解决 无用
    打赏 举报
  • wodexinhao 2018-06-21 08:46

    如果你这个函数所在js文件不在这个页面的js里面,那么可以通过传值的方式,当然你觉得麻烦的话,你也可以在那个单独的js里面通过ajax的方式获取这值,然后初始化,看你喜欢怎么用

    var a;
    function Init_a(e)
    {
     a = 'e;//这个变量如何用服务器中在控制器的方法中赋予变量初始值
     }
    

    然后在这个页面调用这个 Init_a('@ViewBag.a');

    评论
    解决 无用
    打赏 举报
  • wodexinhao 2018-06-21 08:47
     var a;
    function Init_a(e)
    {
     a = e;//这个变量如何用服务器中在控制器的方法中赋予变量初始值
     }
    

    刚刚多了一个'号

    评论
    解决 无用
    打赏 举报
  • xtmtd 2018-06-21 09:50

    这个变量如何用服务器中在控制器的方法中赋予变量初始值

    评论
    解决 无用
    打赏 举报
  • cnmaxu 2018-06-25 12:46

    首先明确一个前提,单独在 js 文件中是无法用 razor 引擎的 @ 转义的,
    而在 cshtml 中的 js 代码是可以通过服务器端动态控制生成的。

    在明确了这个前提的情况下解决方案如下:

    test.js 文件内容如下:

    注意 a 是函数的入口参数
    function Add(a) {
    alert(a + 123);
    }

    cshtml 页面代码如下:

    var value = @ViewBag.value ; Add(value);

    ** controller 方法代码如下:**
    public class TestController : Controller
    {
    // GET: Test
    public ActionResult Index()
    {
    ViewBag.value = 100;
    return View();
    }
    }
    完美解决你的问题。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题