如何将ViewData值分配给JavaScript变量?

时间:2020-06-24 18:10:40

标签: javascript ajax asp.net-mvc model-view-controller asp.net-mvc-5

我正在尝试将Controller中的ViewData的值分配给前端中的JavaScript变量;然后将该变量添加到AJAX URL API调用中。

这是我到目前为止所拥有的:

  1. 控制器
public ActionResult Index()
            {
                ViewData["xTokenBackEnd"] = "IAMATOKEN";
                return View();
            }
  1. Index.cshtml
    var xTokenFrontEnd = @Html.Raw(Json.Encode(ViewData["xTokenBackEnd"]));
    $.ajax({
                    type: 'GET',
                    url: 'https:&token=' + xTokenFrontEnd,
                    dataType: 'json'
                }).done(function (result) {})

运行该应用程序时,我可以看到该变量的字符串位于URL的末尾,即https:&token=IAMATOKEN,但是,我仍然没有通过ajax接收任何信息。奇怪是因为该值位于URL的末尾,但是几乎没有任何实际值。也许我需要进行转换?如果我取出变量xTokenFrontEnd并输入实际值IAMTOKEN,则一切正常,因此我认为错误是我将xTokenFrontEnd添加到URL末尾的方式,但不确定。有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

在您的视图中,获取值并分配给变量-例如:

string token = ViewData["xTokenBackEnd"];

然后使用以下变量示例创建隐藏字段:

@Html.Hidden("hfToken", @token)

然后您可以使用以下方法从jquery调用此值:

$('#hfToken').val();

最后在ajax调用中使用此值

相关问题