如何返回更新的部分视图及其父视图(回发)

时间:2014-12-02 08:05:44

标签: c# asp.net-mvc

我有一个包含2个局部视图的父视图,部分视图包含少量文本框和一个按钮,当我提交按钮时,部分视图将显示一些消息。代码如下:

查看:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of Test.ParentModels)" %>

<% Html.RenderPartial("LogIn", Model.LoginModel)%>
<% Html.RenderPartial("Register", Model.RegisterModel)%>

型号:

public class LoginModel
{
    //code here
}

public class RegisterModel
{
    //code here
}

public class ParentModel
{
    public LoginModel LoginModel {get; set;}
    public RegisterModel RegisterModel {get; set;}
}

控制器:

//LogIn page will call this method on submit
public LogIn(LoginModel model) 
{
    //do something that changed Login html view
    return View("LogIn", model);
}

问题是我不知道如何返回更新的部分视图及其父级(回发),我不想使用ajax来实现这一点。我尝试了返回View(“LogIn”,模型)并返回PartialView(“LogIn”,模型),两者都只显示没有父节点的局部视图。任何帮助将不胜感激,并抱歉英语不好。

1 个答案:

答案 0 :(得分:0)

由于您要进行整页回发,虽然您从部分视图部分回发,但在相应的操作方法中,您需要返回主视图(在您的情况下有两个部分),也捕获任何状态从回发中获取并将其设置为模型对象(如果您需要保持状态),如主视图所期望的那样。

E.g。

return View("ParentViewName",objParentModel);