JavaScript警报适用于int,但不适用于string
JavaScript alert works with int but not string
当调用javascript函数时,它只有在传入int时才有效。如果传入字符串,它将失败。
例如,这是我的控制器,我在其中向视图传递人员列表。
public ActionResult Index()
{
List<Person> people = new List<Person>();
people.Add(new Person() { Id = 1, FirstName = "Geddy", LastName = "Lee" });
people.Add(new Person() { Id = 2, FirstName = "Alex", LastName = "Lifeson" });
return View(people);
}
在视图中,我有以下javascript函数:
function RemovePerson(firstName) {
alert(firstName);
}
我的网络网格有一个列,允许用户删除一个人:
gridPeople.Column(header: "", columnName: "",
format: (person) => MvcHtmlString.Create(string.Format(
"<a href='' onclick='RemovePerson({0}); return false;'>x</a>",
person.FirstName))),
如上所示,当我点击x删除一个人时,我会收到这个错误:
Uncaught Reference Error: Geddy is not defined
为什么?
如果我更改javascript以接受int:
function RemovePerson(personId) {
alert(personId);
}
并实际通过int:
gridPeople.Column(header: "", columnName: "",
format: (person) => MvcHtmlString.Create(string.Format(
"<a href='' onclick='RemovePerson({0}); return false;'>x</a>",
person.Id))),
它正确地显示了一个带有int值的消息框。那么,当传递int而不传递名称时,为什么这会起作用呢?
原因是需要将字符串变量用引号括起来。
未捕获参考错误:未定义Geddy
这意味着它认为您引用的是一个名为Geddy
的变量,而不是字符串文本"Geddy"
。
以下是您使用的:
string.Format("<a href='' onclick='RemovePerson('"{0}'"); return false;'>x</a>",
person.Id)
此外,
string.Format("<a href='' onclick='RemovePerson('"{0}'"); return false;'>x</a>",
person.FirstName);
严格来说,使用
person.FirstName.Replace("'"", "'''"")
相关文章:
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- JavaScript不显示剩余字符,但适用于其他页面
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 为什么这只适用于身体部分而不是头部
- 为什么不't此正则表达式适用于重复出现的对
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- JavaScript 位置适用于本地主机而不是服务器
- Rally App SDK 2.0:Rallymultiobjectpicker,适用于不显示displayField的
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- Angular.js - 控制器不为索引执行,适用于其余模板
- D3 .on 更改适用于文本而不是图表
- Zillow 数据 - json_encode不起作用 - 适用于常规变量
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- Phonegap Android项目适用于模拟器,而不是实际的手机
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- AngularJS:ng-单击不起作用,适用于<按钮>
- Javascript不会在移动设备上加载.适用于桌面
- 为什么我的代码适用于高度:100px,而不是高度:100%
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 哪些限制适用于不透明响应