jquery 从 视图 内 Script 标记 的 TempData 访问 字符 串 值

gj3fmq9x  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(113)

我正在尝试从.cshtml文件内的脚本标记访问TempData中的字符串值。

<script>  
    var FromComTaskLibType = '@TempData["FromComTaskLibType"]';
    console.log(FromComTaskLibType.toString())    
</script>

使用这个函数,我得到的值是AAAA,而不是'AAAA'。我用.toString()调用了它们。但它仍然不起作用。
在控制器中,我这样分配这个值:

public ActionResult LoginFromCOM(string libType)
{                  
    TempData["FromComTaskLibType"] = libType;
    //...
}

这里libType的值表示为"AAAA"

dxxyhpgq

dxxyhpgq1#

必须使用ViewBag at .cshtml文件参数
示例:

@ViewBag.nameEntity
0qx6xfy6

0qx6xfy62#

使用这个函数,我得到的值是AAAA,而不是'AAAA'。我用.toString()调用了它们。但它仍然不起作用。
好吧,你不需要convert to string,因为TempData已经是一个string了。所以你可以试试下面的方法。

控制器:

public class AccessTempDataController : Controller
        {
            
            public ActionResult LoginFromCOM(string libType)
            {
                TempData["FromComTaskLibType"] = libType;
               return View();
            }
        }

脚本:

<script>
    var FromComTaskLibType = '@TempData["FromComTaskLibType"]';
    alert(FromComTaskLibType);
    console.log(FromComTaskLibType);
</script>

输出:

如果您需要此“AAAA”输出:

但是,如果您希望输出为'AAA'single qoute,则必须将字符串解析为JSON.stringify,然后必须将双精度值qoute替换为single qoute,如下所示:

<script>
    var FromComTaskLibType = '@TempData["FromComTaskLibType"]';
    alert(JSON.stringify(FromComTaskLibType));

    var data = JSON.stringify(FromComTaskLibType);
    alert(data.replace(/"/g, '\''));
    console.log(data);
</script>

输出:

相关问题