Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 按值将数据传递给控制器_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 按值将数据传递给控制器

Asp.net mvc 按值将数据传递给控制器,asp.net-mvc,asp.net-mvc-3,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

这是我的控制器:

    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)

这到底是为什么?为什么我不能将
字符串作为路由值传递给控制器???

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

答案很好。不同之处在于,您需要传递一组键/值对作为第三个参数,然后将其转换为查询字符串。例如:新的{hello:“world”}将被添加为?hello=world。