【问题标题】:mvc read hidden field within the viewmvc 读取视图中的隐藏字段
【发布时间】:2017-04-11 19:23:35
【问题描述】:

我正在做一个 MVC 应用程序。

我有一个带有不同部分视图的视图。

在第一个 partial View 中,如果用户已登录,我在 Hidden Field 中有用户 ID。

我的第一个局部视图是这样继承的

@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.HiddenFor(model => model.User_id)

另一个Partial View,是一个IEnumerable,用来渲染一个PagedList

继承自

@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?

【问题讨论】:

    标签: asp.net-mvc partial-views hidden-field


    【解决方案1】:

    如果您在主视图上有一个模型,该模型具有用于局部视图的子模型,并且它们会像下面这样被传递:

    @{ Html.RenderPartial("partial", Model.PartialViewModel); }
    

    您可以改为传入父模型:

    @{ Html.RenderPartial("partial", Model); }
    

    然后可以访问父模型的所有属性,以及任何子模型:

    Model.PartialViewModel.UserID
    

    【讨论】:

    • 谢谢,但是有不同的模型。一个模型有用户 ID 和图片,第二个模型在 PagedList 中有一个 IEnumerable 渲染。我需要知道登录的用户是否是编写任何 cmets 的同一个人
    • 你的问题不是很明显。也许您想通过添加模型和更多视图代码来详细说明。
    • 我添加了更多的 cmets.. 来澄清
    【解决方案2】:

    部分视图是不同的 HTML 页面,因此不知道彼此的元素。在它们被渲染后,你会得到一个大的 HTML 页面,其中包含所有部分视图的内容,可以通过 javascript 访问

    如果您希望局部视图共享变量,那么您需要将包含变量的模型传递给两个局部视图,或者在 HTML 主页上使用 javascript $(document).ready 中的某些内容来发送您的隐藏字段值从一个局部视图中的字段到另一个视图

    编辑 - 我看到你在下面说两者都是不同的视图模型。您还可以做的一件事是创建一个带有 userId 变量的 baseviewmodel.. 然后让您的两个视图模型都从 baseviewmodel 继承,这样您就可以在两者中都有变量 - 例如 - https://www.danylkoweb.com/Blog/aspnet-mvc-model-make-a-baseviewmodel-for-your-layouts-PX

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2023-03-09
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多