Ajax调用参数不接受@Model作为参数值
Ajax call Parameter does not accept @Model as parameter value
我有以下代码从 .CSHTML
文件进行 Ajax 调用。
<script type="text/javascript">
$("#Save").click(function () {
var model = {
EmployeeId: @Model.EmployeeId,
OverrideTermDate: $('#OverrideTermDate').val(),
OverrideHireDate: $('#OverrideHireDate').val(),
};
$.ajax({
data: @Model.EmployeeId,
url: "/Employee/UpdateOverrideDates",
type: "POST",
success: function (result) {
$(function () {
$("#dialog").dialog();
});
}
});
});
</script>
我的 VS 显示语法错误。但是,如果我将它硬编码为 1 之类的任何 int 值,那么它就可以正常工作,而不是 @Model.EmployeeId
。
现在 @Model.EmployeeId
不是 NULL,而是一个整数。只是Ajax不喜欢而已。知道为什么吗?我不应该在 Ajax 调用中使用 @Razor 组件吗?
这只是 Visual Studio 中的一个错误,视图应该正常工作。
答案在这里解释:Razor/JavaScript and trailing semicolon.
如果不喜欢,可以在@Model
后面加上"plus zero"
$("#Save").click(function () {
var model = {
EmployeeId: @Model.EmployeeId + 0,
OverrideTermDate: $('#OverrideTermDate').val(),
OverrideHireDate: $('#OverrideHireDate').val(),
};
$.ajax({
data: @Model.EmployeeId + 0,
url: "/Employee/UpdateOverrideDates",
type: "POST",
success: function (result) {
$(function () {
$("#dialog").dialog();
});
}
});
});
要在 JS 中使用 Razor,请将属性包装在 ''
、
中
data : '@Model.EmployeeId',
//For passing integer use parseInt('@Model.EmployeeId') or Number('@Model.EmployeeId')
和
var model = {
EmployeeId: '@Model.EmployeeId',
....
};
引号充当分隔符,因此 Razor 解析器可以识别这些值。
或者,
data : @Model.EmployeeId + "",
我有以下代码从 .CSHTML
文件进行 Ajax 调用。
<script type="text/javascript">
$("#Save").click(function () {
var model = {
EmployeeId: @Model.EmployeeId,
OverrideTermDate: $('#OverrideTermDate').val(),
OverrideHireDate: $('#OverrideHireDate').val(),
};
$.ajax({
data: @Model.EmployeeId,
url: "/Employee/UpdateOverrideDates",
type: "POST",
success: function (result) {
$(function () {
$("#dialog").dialog();
});
}
});
});
</script>
我的 VS 显示语法错误。但是,如果我将它硬编码为 1 之类的任何 int 值,那么它就可以正常工作,而不是 @Model.EmployeeId
。
现在 @Model.EmployeeId
不是 NULL,而是一个整数。只是Ajax不喜欢而已。知道为什么吗?我不应该在 Ajax 调用中使用 @Razor 组件吗?
这只是 Visual Studio 中的一个错误,视图应该正常工作。 答案在这里解释:Razor/JavaScript and trailing semicolon.
如果不喜欢,可以在@Model
后面加上"plus zero"$("#Save").click(function () {
var model = {
EmployeeId: @Model.EmployeeId + 0,
OverrideTermDate: $('#OverrideTermDate').val(),
OverrideHireDate: $('#OverrideHireDate').val(),
};
$.ajax({
data: @Model.EmployeeId + 0,
url: "/Employee/UpdateOverrideDates",
type: "POST",
success: function (result) {
$(function () {
$("#dialog").dialog();
});
}
});
});
要在 JS 中使用 Razor,请将属性包装在 ''
、
data : '@Model.EmployeeId',
//For passing integer use parseInt('@Model.EmployeeId') or Number('@Model.EmployeeId')
和
var model = {
EmployeeId: '@Model.EmployeeId',
....
};
引号充当分隔符,因此 Razor 解析器可以识别这些值。
或者,
data : @Model.EmployeeId + "",