0

一部のアプリケーションのバグを修正していて、次のコード行を理解するのに助けが必要です:

ここで、表示:

@Html.RenderControlText("WFD_CONSENT")

コントローラ:

public static MvcHtmlString RenderControlText(this HtmlHelper htmlHelper, string controlType)
        {
            return htmlHelper.Action("ControlText", new { controlType = controlType });
        }

パラメータcontrolType = "WFD_CONSENT"はこちら。ここで関数が何をしているのかわかりませんhtmlhelper.Action()。論理的には、この関数RenderControlText()はどこかからデータを取得する必要がありますが、そうは見えません。私はここで行き止まりです。このメソッドRenderControlText()は、どこかに保存したテキストを取得して表示する必要があります。

編集: Action() メソッドには次のパラメータがあります: action-name と object routevalues? 2 番目の部分は何ですか: new { controlType = controlType }? このルート値は何をしますか??

4

1 に答える 1

0

関数 htmlhelper.Action() がここで何をしているのかわかりません。

Phil Haackの次のブログ投稿を見てください。彼は子供の行動について詳しく説明しています。

Html.Action ヘルパーは基本的に子アクションを実行します。子アクションは、メイン リクエストの実行と並行してレンダリングできることを除いて、標準のコントローラー アクションです。

Html.Action("SomeAction", "SomeController")SomeActionが実行されSomeController、このアクションの実行結果が出力にレンダリングされることを意味します。

対照的に:は、子コントローラーとアクションを実行せずに出力に直接レンダリングされることをHtml.Action("SomePartial")意味します。SomePartial

ただし、どちらの場合も、すべての処理が 1 つのクライアント要求で行われます。実行されてビューをレンダリングするプライマリ コントローラー アクションがあり、このビュー内で Html.Action ヘルパーを使用して、子コントローラーとアクション (たとえば、部分ビューを返す可能性があります) と実行結果をインスタンス化しただけです。このビューの内容が出力に直接挿入されます。

于 2012-06-15T09:55:41.750 に答える