【问题标题】:ASP.NET MVC and strongly-typed partialviewASP.NET MVC 和强类型局部视图
【发布时间】:2010-02-26 18:38:52
【问题描述】:

我正在使用 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 中,还是我应该寻找一种完全不同的方法?

【问题讨论】:

    标签: asp.net-mvc ajax partial-views


    【解决方案1】:

    当你return PartialView("Application_AddServer");时,你必须通过模型:

    return PartialView("Application_AddServer", model);
    

    由于这是一个 AJAX 请求,它是一个单独的控制器动作调用,并且新的 PartialView 不知道请求页面的模型。您必须从原始数据源或通过 AJAX 请求传递的数据重建它。

    【讨论】:

    • 好吧,现在我感觉自己像个假人......我可以发誓我检查过是否存在包含模型的过载,但显然不是!
    • 嘿,有时每个人都会遇到 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多