本帖最后由 siaosa 于 2014-07-07 13:51:20 编辑

解决方案 »

  1.   

    var url='';
    @if (ViewBag.F == "0")         //
    {
             url='@Url.Action("ABC")';               ==>JS,给变量url赋值  不能正确生成代码
    }
    这不是一个url 一个是js,一个是服务器端的
      

  2.   

    <script>
    var url='';
    if ("@ViewBag.F" == "0")         //
    {
             url='@Url.Action("ABC")';               ==>JS,给变量url赋值  不能正确生成代码
    }
    else if ("@ViewBag.F"=="2")
             url="~/Home/Index";                         ==>JS,给变量url赋值,不能正确生成代码
    </script>
      

  3.   

    我试过这种写法的,貌似生成出来的结果还是url='@Url.Action("ABC")'; 它将C#代码当成字符串了,
    并没有执行Url.Action 代码,当你不加上单引号的时候又编译不过,所以你需要将其绑定在一个隐藏控件里面,在后面去获取,感觉在script下是不支持写C#代码的以前又遇到过,初步理解这样子
      

  4.   

    我也发现目前Razor不支持在嵌套JS代码
      

  5.   


    <script>
    var url='';
    @if (ViewBag.F == "0")         //
    {
        <text> [email protected]("ABC"); </text>
    }
    else if (ViewBag.F == "2")
    {
       <text> var url = "~/Home/Index";</text>
    }
      
    </script>
      

  6.   

    用<text></text>,或者@:
    楼上的贴了<text></text>的,俺贴@:吧
    @if (ViewBag.F == "0")
        {
            @:url = '@Url.Action("ABC")';
        }