名称参数在 JQUERY 方法的当前上下文中不存在
The name parametor does not exist in the current context in JQUERY method
我有按钮,当它单击时,进程事件已被调用,参数传递给事件。
这里的代码:
<input type="button" value="Accessing Layers" onclick="process('AccessingLayers');" />
function process(actionName) {
$.ajax({
url: '@Url.Action(actionName)',
type: 'POST',
data: {
sessionID: parent.parent.mapFrame.sessionId,
mapName: parent.parent.mapFrame.mapName
},
success: function (result) {
alert('Successfully passed data to controller');
}
});
}
但在这一行中:
url: '@Url.Action(actionName)'
我收到此错误:
名称"操作名称"在当前上下文中不存在
知道为什么我得到上面的错误吗?
以及如何解决它?
请记住,
在执行客户端代码之前,razor 代码在服务器上执行。所以你不能把javascript变量传递给这样的剃刀方法。
如果你仍然想使用 Url.Action 帮助程序方法构建 url 并将其传递给你的进程方法,你应该使用正确的参数(操作方法、控制器名称等)调用 Url.Action
方法并生成 url 并将 url( 由 razor 生成)作为字符串参数值传递给你的 javascript 方法
<input type="button" value="Accessing Layers"
onclick="process('@Url.Action("AccessingLayers")')" />
和你的 js 代码
function process(actionUrl) {
$.ajax({
url: actionUrl,
// existing code
});
}
<input type="button" value="Accessing Layers" id="btnAccessingLayers" />
和在脚本部分
$(document).ready(function () {
$('#btnAccessingLayers').on('click', function(){
process('@Url.Action("AccessingLayers")');
}
});
function process(actionUrl) {
$.ajax({
url: actionUrl,
// existing code
});
}
引号之间键入的所有内容都解析为纯文本,因此不会对检索 actionName 的值执行计算。
你必须像这样打破你的网址:
网址: '@Url.Action('+actionName+')'
以便将操作名称解析为变量。
相关文章:
- 正在将事件处理程序添加到不存在的类
- javascript如果图像不存在don't加载它
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何将一个函数附加到一个不存在的元素上
- 在scala或scalajs Diode中,现有类型中的任何一种都符合“;更新一个没有'还不存在”;
- 查找数组's按属性不存在于另一个数组中的对象
- 用javascript在对象上创建不存在的方法
- 仅当值不为'不存在
- casperjs-css选择器存在,但当单击它时会引发“”;CasperError:无法在不存在的选择器“”上调度mou
- 运行时不存在Javascript函数
- 使用webdriver和selenium验证元素是否不存在
- 如果文件不存在,fs.watch是否有错误处理程序
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- Backbonejs:在视图中渲染的模型,但在集合中不存在
- 从params推送到对象(如果不存在)
- 当锚点HREF源不存在时隐藏图像
- 如何从网站获得apple touch图标,如果没有;不存在,则显示收藏夹
- 映像 ID 在当前上下文 asp.net 中不存在
- 名称'Url'在asp.net中的当前上下文错误中不存在