1

AJAX呼び出しで部分ビューをロードしています:

public ActionResult LoadServerForm()
        {
            //data stuff

            ViewData["ApplicationID"] = appID.ToString();
            ViewData["Servers"] = ServersList(appServerRep.Session, null, appServers);
            return PartialView("Application_AddServer");
        }

これはうまく機能しますが、私は魔法のViewData文字列から逃げようとしています。「ホスティング」ページと同じViewModelから部分ビューを継承させようとしましたが、部分ビューでこれを実行しようとすると、Modelオブジェクトがnullになります。

<%= Html.HiddenFor(model=>model.Application_Key, Model.Application_Key) %>

メインページのViewModelをAJAXがロードされたPartialViewに渡す方法はありますか、それともまったく別のアプローチを探す必要がありますか?

4

1 に答える 1

1

あなたがするときreturn PartialView("Application_AddServer");、あなたはモデルを渡す必要があります:

return PartialView("Application_AddServer", model);

これはAJAXリクエストであるため、別個のコントローラーアクション呼び出しであり、新しいPartialViewはリクエストしているページのモデルを認識しません。元のデータソースが何であれ、またはAJAXリクエストで渡されたデータから再構築する必要があります。

于 2010-02-26T18:43:43.767 に答える