通过值将数据传递给控制器

时间:2011-11-04 02:55:52

标签: asp.net-mvc asp.net-mvc-3

这是我的控制器:

    public ActionResult RecipeDetails(string recipeString)
    {
        RecipeModel Recipe = new RecipeModel(recipeString);

        return View(Recipe);
    }

当我尝试使用这样的ActionLink()时,recipeString的值为null

@Html.ActionLink(Recipe.RecipeName.ToString(), "RecipeDetails", "Recipe", Recipe.RecipeName }, null)

但是当我把它改成这个时,它传递了正确的值:

@Html.ActionLink(Recipe.RecipeName.ToString(), "RecipeDetails", "Recipe", new { RecipeString = Recipe.RecipeName }, null)

为什么会这样?为什么我不能将string作为路由值传递给控制器​​?

1 个答案:

答案 0 :(得分:3)

它不知道如何处理Recipe.RecipeName,只是它是一个字符串,通过提供new { RecipeString = Recipe.RecipeName }你基本上告诉它将&RecipeString=(value of Recipe.RecipeName)添加到查询字符串