我使用了datatables
,我想为指定的int Enum
获取variable
值。
var client = $('td', row).eq(1).text().trim();
客户端是一种数字数据类型。
我尝试了这个,但它不起作用:
var x=@Enum.GetName(typeof(Client),client);
客户端在当前上下文中不存在
提前致谢!
答案 0 :(得分:4)
@Enum.GetName(typeof(Client), client);
是剃刀代码,在发送到视图之前在服务器上解析。 client
是一个javascript变量,此时不存在(不在范围内)。
On选项是将enum
名称和值的集合传递给客户端,并将其分配给javascript数组,以便可以搜索它。
例如,创建一个表示名称和值的类
public class EnumValues
{
public int ID { get; set; }
public string Name { get; set; }
}
并在您的控制器中
IEnumerable<EnumValues> clientValues =
from Client c in Enum.GetValues(typeof(Client))
select new EnumValues
{
ID = (int)c,
Name = c.ToString()
};
并将其传递给视图模型属性中的视图,或使用ViewBag
ViewBag.ClientValues = clientValues;
在视图中,将其分配给javascript数组,并创建一个函数以返回相应值的名称
var clients = @Html.Raw(Json.Encode(ViewBag.ClientValues));
function getClientName(value)
{
for(var x = 0; x < clients.length; x++) {
if (clients[i].ID == value) {
return clients[i].Name;
}
}
return null;
}
并将其用作
var client = $('td', row).eq(1).text().trim();
var clientName = getClientName(client);