这是我的控制器:
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
作为路由值传递给控制器?
答案 0 :(得分:3)
它不知道如何处理Recipe.RecipeName,只是它是一个字符串,通过提供new { RecipeString = Recipe.RecipeName }
你基本上告诉它将&RecipeString=(value of Recipe.RecipeName)
添加到查询字符串