gpt4 book ai didi

javascript - jQuery 在通过 Razor 添加枚举时给出引用错误

转载 作者:行者123 更新时间:2023-11-30 19:55:13 25 4
gpt4 key购买 nike

这是我的代码。单击按钮时,我试图将枚举标志值输入到数据库表中,但出现引用错误。

<button type="button" class="btn btn-default clean" data-id="@item.RoomId">status</button>

$(function () {
$('.clean').click(function () {
$.post("@Url.Action("SetStatus", "ReceptionHk")", {
id: $(this).data("id"),
newStatus: @EnumHkStatus.Cleaning
});
});
});
[Flags]
public enum EnumHkStatus
{
None,
Repair,
Cleaning,
InventoryCheck,
Occupied
};

单击按钮时,我试图在状态列中输入值作为 int 值,因为它在带有标志的枚举器中,但我收到以下错误

ReferenceError: Cleaning is not defined

请帮帮我

最佳答案

查看您的服务器端代码向浏览器输出的内容。听起来像这样:

@EnumHkStatus.Cleaning

正在输出这个:

Cleaning

JavaScript 代码无法理解。 (这就是错误明确告诉您的内容。)对于您的 JavaScript 代码,您可能希望它是一个字符串:

'@EnumHkStatus.Cleaning'

或一个整数:

@((int)EnumHkStatus.Cleaning)

(哪一个由你决定。你可能想测试两者,我不确定模型绑定(bind)器是否可以自动将其中一个或两个转换回 enum 值。)所以最终您的 POST 调用将至少包含有效代码。例如:

$.post("@Url.Action("SetStatus", "ReceptionHk")", { id: $(this).data("id"), newStatus: @((int)EnumHkStatus.Cleaning) });

会输出如下内容:

$.post("/ReceptionHk/SetStatus", { id: $(this).data("id"), newStatus: 3 });

可能然后需要更新您的SetStatus 操作以接受intstring(无论您选择), 除非模型绑定(bind)可以为您转换为相应的 enum 。你会想测试一下。如果确实需要更改方法签名,只需在操作方法的开头将其转换回相应的 enum

旁注:您可能想要一些代码来处理 AJAX 响应,如果没有其他原因只是为了检查操作的成功/失败。

关于javascript - jQuery 在通过 Razor 添加枚举时给出引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com