Asp.net mvc ASP.NET MVC-具有部分视图的强类型视图(视图和部分视图也应该可以访问某些全局数据)
考虑以下场景: 操作Edit()被转发到Edit.aspx view以呈现视图 Edit.aspx由textbox1和两个局部视图(也称为视图用户控件)组成: part1.ascx(具有textbox2和textbox3) 和part2.ascx(具有复选框1和复选框2) 您想为Edit.aspx创建一个强类型视图,比如说,您使用的是EditViewData类 您还需要Edit.aspx、part1.ascx和part2.ascx能够访问一些全局信息,例如currentUserID、currentUserLanguage、currentUserTimezone 问题:Asp.net mvc ASP.NET MVC-具有部分视图的强类型视图(视图和部分视图也应该可以访问某些全局数据),asp.net-mvc,Asp.net Mvc,考虑以下场景: 操作Edit()被转发到Edit.aspx view以呈现视图 Edit.aspx由textbox1和两个局部视图(也称为视图用户控件)组成: part1.ascx(具有textbox2和textbox3) 和part2.ascx(具有复选框1和复选框2) 您想为Edit.aspx创建一个强类型视图,比如说,您使用的是EditViewData类 您还需要Edit.aspx、part1.ascx和part2.ascx能够访问一些全局信息,例如currentUserID、curren
您的viewdata应该如下所示:
public class EditViewData
{
public int currentUserID { get; set; }
public string currentUserLanguage { get; set; }
public string currentUserTimezone { get; set; }
// ... other stuff
}
在强式键入aspx之后,还需要强式键入ASCX。然后在您的aspx中,当您调用RenderPartial时,只需像往常一样调用:
<% using (Html.BeginForm()) %>
<% Html.RenderPartial("part1.ascx" ); %>
<% Html.RenderPartial("part2.ascx" ); %>
<%}%>
它应该自动继承控件中的模型。请记住,您的BeginForm应该围绕两个控件(ASCx)。+1-一直以来,我都将这个.Model作为partials的模型参数传递。没有意识到它会自动传下来。不错。