0

私はmvc4を使用しています

コントローラーにメソッドがあります。このメソッドを使用して、別のコントローラーの別のメソッドを使用するように指示します。私はこれを試しました

public ActionResult Building(int buildingID) {
    if((buildingID == 0) || (buildingID<0))
        return HttpNotFound();
    else
        RedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });
}

しかし、私はこの例外を得ました

not all paths have value

私は何を間違っていますか?

4

3 に答える 3

4

else ステートメントで返す必要があります。

return RedirectToRoute(new 
{ 
    controller = "Building", 
    action = "details", 
    id = buildingID 
});

またid、アクション名にクエリ文字列パラメーターとしてハードコーディングするのではなく、匿名オブジェクトの一部として渡していることにも注意してください。

于 2013-11-01T15:26:21.243 に答える
3

あなたelseのステートメントはActionResult

これRedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });は値を返しません。RedirectToRouteを返す場合は、その前にキーワードをActionResult追加して使用できます。return

于 2013-11-01T15:26:40.240 に答える
2
return RedirectToRoute(new { controller = "Building", action = "details?id=" + buildingID });

また、使用できると思いますが、再確認する必要があります

return RedirectToAction("details", "Building", new { id = buildingID  });

また、この行を変更することもできます (コードをクリーンアップするためだけに)...

if((buildingID == 0) || (buildingID<0))

に..

if(buildingID < 1)
于 2013-11-01T15:27:25.810 に答える