Прекращает кодирование '' в кавычки в Javascript - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть WebApi, для которого требуется строковый параметр. Я отправляю URL-адрес Api и параметры в виде viewbag из действия, чтобы я мог повторно использовать представление для нескольких WebApis

My controllerAction

  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 = "")
    {
    }

Моя проблема в том, что мои параметры преобразуются в

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

, что приводит к ошибке. Iзнаю, что это глупо, и я что-то упускаю или что-то вроде создания JSON в действии .. кто-то может предложить

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

не будет работать

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Вам нужно изменить код js на:

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

По умолчанию движок Razor будет кодировать все.Таким образом, вам нужно использовать @Html.Raw(), который возвращает разметку, не закодированную в формате HTML.

0 голосов
/ 25 декабря 2018

У вас есть кавычки внутри кавычек:

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

Измените ваши внутренние кавычки следующим образом:

",Exam:\'First Term\'}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...