我尝试使用此解决方案:
MVC3 HiddenFor with Enum. Input's value is enum key not value?
然而,它在MVC5 Razor视图中不起作用。我收到这个错误:
System.Web.Mvc.dll中发生了'System.InvalidOperationException'类型的异常,但未在用户代码中处理
其他信息:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。
如何在隐藏字段中获取枚举值而不是枚举键?
枚举类型:
public enum LineType : int
{
Account = 0,
Inventory = 1,
Service = 2
}
在Razor视图中,我有:
@Html.HiddenFor(m => (int)m.LineTypeID)
LineTypeID的类型为LineType。
答案 0 :(得分:6)
你可以这样做
@Html.HiddenFor(m => m.LineTypeID, new {@Value = (int)Model.LineTypeID})
这会覆盖键值
答案 1 :(得分:0)
这里只是为了进一步详细说明答案:
@Html.HiddenFor(m => (int)m.LineTypeID)
这不起作用。你不能在模板上施放。当你施放它时会创建一个新变量,但这不起作用。
将cast转换为int并按照描述添加@value字段。
@Html.HiddenFor(m => m.LineTypeID, new {@Value = (int)m.LineTypeID, id = "LineTypeID"})
我想添加Id字段,以便以后可以轻松访问JavaScript中的值:
var lineTypeIDValue = parseInt($("#LineTypeID").val());
同样在C#中,您不需要为枚举添加类型。
public enum LineType
{
Account = 0,
Inventory = 1,
Service = 2
}
你现在应该