Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止将“”编码为Javascript中的引号_Javascript_C#_Json_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

停止将“”编码为Javascript中的引号

停止将“”编码为Javascript中的引号,javascript,c#,json,asp.net-mvc,asp.net-web-api,Javascript,C#,Json,Asp.net Mvc,Asp.net Web Api,我有一个WebApi,它需要一个字符串参数。我将Api Url和参数作为viewbag从action发送到视图,这样我就可以对多个WebApi重用视图 我的管制员行动 public ActionResult PreviousQuestions(String exam = "", int Number = 0) { ViewBag.uri = "/api/pmp/GetNumberofQuestionByExam";

我有一个WebApi,它需要一个字符串参数。我将Api Url和参数作为viewbag从action发送到视图,这样我就可以对多个WebApi重用视图

我的管制员行动

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

 $(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) {

        }
    });
Web Api

  public List<QuestionViewModel> GetPreviousQuestion(int Number, string Exam = "")
    {
    }
这会引发错误。我知道这很愚蠢,我错过了一些东西或类似于在操作中创建json的东西。有人能建议吗

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

将不起作用

您在引号内有引号:

",Exam:\"First Term\"}"
更改您的内部引号,如下所示:

",Exam:\'First Term\'}"

您需要将js代码更改为:

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

默认情况下,Razor引擎将对所有内容进行编码。因此,您需要使用返回非HTML编码的标记的变量。

尝试执行var param='@HTML.RawViewBag.param'您能给我console.logparam;在var param=@ViewBag.param;之后;?只需添加代码并告诉结果。@adiga您可以添加它作为答案,这样我就可以accept@holydragon…我找到了解决办法thanks@SreenathGanga然后一起删除引号没有xavier ajax无法识别该格式为字符串。我从@aldigaI获得的任何解决方案都非常确定不需要这些单引号。
var param = @Html.Raw(ViewBag.param)