MVC 读取视图中的隐藏字段



我正在做一个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(

另一个分部视图是用于呈现PagedListIEnumerable

它继承自

@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

最新更新