我正在做一个MVC应用程序。
我有一个视图,上面有不同的部分视图。
在第一个partial View
我有 de 用户 ID 在Hidden Field
中,如果用户被记录。
我的第一个部分视图像这样继承
@model Prj.Models.UserLoginModel
模型是这样的。
public class UserLoginModel
{
public long User_id { get; set; }
public bool Keep { get; set; }
public byte[] Picture { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
我有一个隐藏字段
@Html.隐藏对象(模型 => 模型。User_id(
另一个分部视图是用于呈现PagedList
的IEnumerable
它继承自
@model PagedList.IPagedList<Prj.Models.CommentModel>
public class CommentModel
{
public long Upload_id { get; set; }
public long User_id { get; set; }
public string Description { get; set; }
}
在视图中,我需要从模型中验证两个用户。
@foreach (var item in Model)
{
ask item.User_id == PartialView1.Hidden.User_id
}
我的问题是是否可以阅读它,或者我必须在第二个分视图的模型中包含用户 ID?
主视图上有一个模型,该模型具有用于分部视图的子模型,并且它们将像下面这样传递:
@{ Html.RenderPartial("partial", Model.PartialViewModel); }
您可以改为传入父模型:
@{ Html.RenderPartial("partial", Model); }
然后可以访问父模型上的所有属性以及任何子模型:
Model.PartialViewModel.UserID
分部视图是不同的 HTML 页面,因此不知道彼此的元素。渲染后,您将获得一个大的HTML页面,其中包含来自所有部分视图的内容,可以通过javascript访问
如果您希望分部视图共享变量,则需要将包含变量的模型传递给两个分部视图,或者在主HTML页面上使用javascript $(document(.ready中的某些内容,这将把隐藏字段值从一个分部视图中的字段发送到另一个
编辑 - 我看到你在下面说两者都是不同的视图模型。您还可以做的一件事是创建一个带有userId变量的基本视图模型。然后让你的两个视图模型都继承自 baseViewModel,这样你就会在两个 - 示例 - 中都有你的变量 https://www.danylkoweb.com/Blog/aspnet-mvc-model-make-a-baseviewmodel-for-your-layouts-PX