Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ViewBag值返回错误的编号_Javascript_C#_Asp.net Mvc - Fatal编程技术网

Javascript ViewBag值返回错误的编号

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

我试图通过javascript将
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'});