Javascript ViewBag值返回错误的编号
我试图通过javascript将Javascript ViewBag值返回错误的编号,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我试图通过javascript将ViewBag中的值插入到输入中,并动态创建值 我调用由控制器生成的employeeID值 public string GetEmployeeID(out string idMethod) { string ee_Id = string.Empty; ClientEmployeeSetupDefaults ee_Setup = this.dbContext.ClientEmployeeSetupDefaults.FirstOrDef
ViewBag
中的值插入到输入中,并动态创建值
我调用由控制器生成的employeeID
值
public string GetEmployeeID(out string idMethod)
{
string ee_Id = string.Empty;
ClientEmployeeSetupDefaults ee_Setup = this.dbContext.ClientEmployeeSetupDefaults.FirstOrDefault(c => c.ClientID == GlobalVariables.Client);
string nextIdSuffix = string.Empty;
idMethod = ee_Setup.EmployeeIDMethod;
switch (idMethod)
{
case IDMethod.Sequence:
ee_Id = NextEmployeeID(ee_Setup.EmployeeIDNext, "", out nextIdSuffix);
break;
case IDMethod.PrefixPlusSeq:
ee_Id = NextEmployeeID(ee_Setup.EmployeeIDNext, ee_Setup.EmployeeIDPrefix, out nextIdSuffix);
break;
}
if (nextIdSuffix != string.Empty)
{
ee_Setup.EmployeeIDNext = nextIdSuffix;
this.dbContext.SaveChanges();
}
return ee_Id;
}
用可视包
@{
ViewBag.Title = "CreateProcess";
string employeeID = @ViewBag.EmployeeID.ToString();
var LoginCode = @ViewBag.LoginCode;
}
它是用javascript插入的
<script>
$(document).ready(function ()
{
alert('doc ready happened ' + @employeeID + ' - ' + @LoginCode);
document.getElementById('LoginCode').value = @LoginCode;
document.getElementById('EmployeeIDs').value = @employeeID.ToString();
});
</script>
我不明白为什么它会返回那个随机数,为什么经过所有的调试,它显示了正确的
010015001
,但在刷新时,它会加载错误的数字。前导零的整数是八进制(以8为基数)表示法
010015001(八进制)=2103809(十进制)
如果employeeID
字符串包含十进制形式的整数,则应去掉前导零:
string employeeID = @ViewBag.EmployeeID.ToString().TrimStart(new char[]{'0'});
您应该使用模型而不是viewbag来获取此数据。谢谢Igor。这很有帮助,但有时ID必须以0开头。然后将其设置为字符串,即
document.getElementById('employeeID')。value='@employeeID.ToString()代码>。注意Razor值周围的引号。@Igor:捕捉得很好。@TheDizzle-ah,如果employeeID
始终被视为字符串,那么Chris的建议应该可以解决您的问题,因为它避免了转换为整数。
string employeeID = @ViewBag.EmployeeID.ToString().TrimStart(new char[]{'0'});