javascript - 停止将 '' 编码为 Javascript 中的引号

标签 javascript c# json asp.net-mvc asp.net-web-api

我有一个需要字符串参数的 WebApi。我将 Api Url 和参数作为 viewbag 从操作发送到 View ,以便我可以为多个 WebApi 重用该 View

我的 Controller 操作

  public ActionResult PreviousQuestions(String exam = "", int Number = 0)
            {          
                ViewBag.uri = "/api/pmp/GetNumberofQuestionByExam";
                ViewBag.param = "{ Number:  " + Number + ",Exam:\"First Term\"}";
                return View();
            }

我的 javascript 内部 View

 $(document).ready(function () {
        var uri ='@ViewBag.uri'; //Problem is here
        var param =  @ViewBag.param;
        $.ajax({
        url: uri,
        type: 'GET',
        data: param,
        dataType: 'json',
        success: function (data, textStatus, xhr) {

        }
    });

网络 API

  public List<QuestionViewModel> GetPreviousQuestion(int Number, string Exam = "")
    {
    }

我的问题是我的参数被转换为

 var param =  { Number:  5,Exam:&quot;First Term&quot;};

这会引发错误。我知道这很愚蠢,我错过了一些东西或类似在 Action 中创建 json 之类的东西..有人建议吗

JSON.parse(data.replace(/&quot;/g,'"'));

不会工作

最佳答案

您需要将 js 代码更改为:

var param = @Html.Raw(ViewBag.param)

默认情况下,Razor 引擎将对所有内容进行编码。所以,你需要使用@Html.Raw()它返回非 HTML 编码的标记。

关于javascript - 停止将 '' 编码为 Javascript 中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921368/

相关文章:

php - 变量值无法进入数据库

javascript - 如果元素存在则返回一个函数

c# - DateTime.TryParseExact 格式 MM/dd/yyyy

c# - Custom ChangeMonitor for .Net MemoryCache 导致无效操作异常

c# - 获取 CoreCLR 中的可用类型

javascript - JSON 解码数组不起作用,但相同的数据适用于 javascript

java - JSON 对象/数组 - Java 类

javascript - Moment .JS - 为什么差异不是全年格式

javascript - jQuery SerializeArray — 如何排除带有空 <opiton> 值的 <select>?

javascript - 用下拉菜单覆盖 CSS