javascript - 在 jquery post ASP.NET MVC 之前转义字符的最佳方法

标签 javascript asp.net-mvc model-view-controller

我是 ASP.NET MVC 的新手。我正在构建一个供我公司内部使用的应用程序。

场景是这样的:有两个 Html.Listbox。一个具有所有数据库信息,另一个最初是空的。用户会将数据库列表框中的项目添加到空列表框中。

每次用户添加命令时,我都会在我的 EditController 中调用一个调用 ActionResult“AddCommand”的 js 函数。在 Controller 中,将添加的选定项目保存到另一个数据库表中。

这是代码(每次添加项目时都会调用此代码):

function Add(listbox) { ...
//skipping initializing code for berevity

var url = "/Edit/AddCommand/" + cmd;

$.post(url);

}

因此,当“cmd”是一个包含“/”、“:”、“%”、“?”等(某种特殊字符)的项目时,就会出现问题

所以我想知道的是,转义这些字符的最佳方法是什么?现在我正在检查数据库的列表框项目的文本,并重建字符串,然后在 Controller 中,我正在获取构建的字符串并将其恢复到原始状态。

例如,如果他们添加的项目是“猫/狗”,我将“猫[SLASH]狗”发送到 Controller ,然后在 Controller 中将其改回“猫/狗”。

显然这是一个可怕的 hack,所以我一定遗漏了一些东西。任何帮助将不胜感激。

最佳答案

为什么不把这个从 URI 中去掉呢?您正在执行 POST,因此请将其放入表单中。

如果您的操作是:

public ActionResult AddCommand(string cmd) { // ...

...然后你可以这样做:

var url = "/Edit/AddCommand";
var data = { cmd: cmd };
$.post(url, data);

...一切都将“正常工作”,无需单独的编码步骤。

关于javascript - 在 jquery post ASP.NET MVC 之前转义字符的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297977/

相关文章:

javascript - innerText 在 Jest 测试中未定义

javascript - 获取没有方法错误AngularJS Bootstrap HTML

asp.net-mvc - JQUERY ajax 将空值从 MVC View 传递到 Controller

javascript - 仅从网站限制 Controller 操作

model-view-controller - 从 Symfony2 Controller 中删除 Doctrine 生命周期事件

javascript - 地球和太阳模型未渲染

javascript - 正则表达式转义空格和特殊字符

javascript - 使用ajax mvc搜索数据时如何在查询字符串上保留id

javascript - JavaScript 中的被动 View

model-view-controller - Model View Controller ,每个词代表什么