1

ビュー内のアクションを別のビュー アクション コントローラーにパラメーターを渡して呼び出すのに苦労しています。

これはビューからの呼び出しです (私はインデックス ビューにいて、アカウント コントローラーを呼び出します)。

@Html.ActionLink("parameters", "MyParameters", "Account", new { email = "test" })

ランタイム コンパイラが「アクション MyParameters を解決できません」と言っていますが、何が問題なのですか?

これは私のアカウントコントローラーの機能です:

public ActionResult MyParameters(string email) {}

これは私のルートです:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", 
            "{controller}/{action}/{id}", 
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Paramètres par défaut
        );

    }

乾杯

4

3 に答える 3

4

試す:

@Html.ActionLink("parameters", "MyParameters", "Account", null, new { email = "test" })

過負荷は次のとおりです。

@Html.ActionLink("linkText", "actionName", "controller", object routeValues, object HtmlAttributes)

routeValuesリンクにクエリ文字列を追加するためのものです。したがって、たとえば、リンクにid = 1を追加する場合、アクションリンクは次のようになります。

@Html.ActionLink("parameters", "MyParameters", "Account", new { @id = 1 }, new { email = "test" })

これにより、次のようになります。

<a href="Account/MyParameters?id=1" email="test">parameters</a>

電子メールをクエリ文字列として使用する場合は、次のようにする必要があります。

@Html.ActionLink("parameters", "MyParameters", "Account", new { @id = 1, @email = "test" }, null)

これにより、次のものが生成されます。

<a href="Account/MyParameters?id=1&email=test">parameters</a>
于 2012-07-24T23:30:15.950 に答える
0

試す:

@Html.ActionLink("Controller", "Action", new { email = "test", parameters = "parameters" })

あなたのコントローラー:

public ActionResult MyParameters(string email, string parameters) {}

于 2012-07-24T23:19:22.447 に答える
0

ActionLink3 つの文字列と 1 つのオブジェクトを受け取るオーバーロードはありません。http://msdn.microsoft.com/en-us/library/dd505040

コードはおそらく、routeValues として解釈"Account"し、パラメーターを htmlAttributes として解釈しようとしています。実際に出力されたリンクを見ると、期待したように見えないことがわかると思います。

于 2012-07-24T23:00:45.677 に答える