1

我正在使用 AJAX 调用加载部分视图:

public ActionResult LoadServerForm()
        {
            //data stuff

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

这很好用,但我试图摆脱魔术 ViewData 字符串。我尝试使局部视图继承自与“托管”页面相同的 ViewModel,但是当我在局部视图中尝试这样做时,模型对象为空:

<%= 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 回答