为什么将字符串转换或解析为 int 返回零?

use*_*767 2 c# asp.net-mvc entity-framework-4 asp.net-mvc-3

为什么将字符串转换/解析为 int 返回 0/零?

在调试时,使用断点,我可以看到“3”作为字符串值发布到浏览操作,但是当我如上所述转换为 int 时,该值将转换为 int 类型的 0 值。

    //
    // GET: /Event/Browse
    public ActionResult Browse(string category)
    {
        int id = Convert.ToInt32(category);


        // Retrieve Category and its Associated Events from database
        var categoryModel = storeDB.Categories.Include("Events").Single(g => g.CategoryId == id);
        return View(categoryModel);
    }
Run Code Online (Sandbox Code Playgroud)

查看下图以更好地理解: 在此输入图像描述

另一张图片 -categoryModel 在 LINQ 查询上获取 null。 在此输入图像描述

jon*_*sca 5

来自 MSDN 上的 Int32.TryParse此处

当此方法返回时,如果转换成功,则包含与 s 中包含的数字等效的 32 位有符号整数值;如果转换失败,则包含零。如果 s 参数为 nullptr、格式不正确或者表示的数字小于 MinValue 或大于 MaxValue,则转换将失败。该参数在未初始化的情况下传递。