我有一个需要字符串参数的 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:"First Term"};
这会引发错误。我知道这很愚蠢,我错过了一些东西或类似在 Action 中创建 json 之类的东西..有人建议吗
JSON.parse(data.replace(/"/g,'"'));
不会工作
最佳答案
您需要将 js 代码更改为:
var param = @Html.Raw(ViewBag.param)
默认情况下,Razor 引擎将对所有内容进行编码。所以,你需要使用@Html.Raw()
它返回非 HTML 编码的标记。
关于javascript - 停止将 '' 编码为 Javascript 中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921368/