加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 传递子对象问题的嵌套部分视图

发布时间:2020-12-16 07:05:41 所属栏目:asp.Net 来源:网络整理
导读:我试图将局部视图中的子对象传递给另一个,我总是得到错误.任何人都可以帮我解决这个问题吗? T.T “传递到字典中的模型项是’Application.Models.PetModel’类型,但是这个字典需要’Application.Models.Calendar’类型的模型项” 主要型号 public class PetM
我试图将局部视图中的子对象传递给另一个,我总是得到错误.任何人都可以帮我解决这个问题吗? T.T

“传递到字典中的模型项是’Application.Models.PetModel’类型,但是这个字典需要’Application.Models.Calendar’类型的模型项”

主要型号

public class PetModel
{

    public string Name { get; set; }
    public long SpeciesID { get; set; }
    public long BreedID { get; set; }
    public Calendar DOB { get; set; }

}

子模型

public class Calendar
    {
        public int Day { get; set; }
        public int Month { get; set; }
        public int Year { get; set; }

        public DateTime DateObj
        {
            get
            {
                if (Day != 0 && Month != 0 && Year != 0)
                {
                    return new DateTime(Year,Month,Day);
                }

                return DateTime.Now;
            }

            set
            {
                if (value != null)
                {
                    Day = value.Day;
                    Month = value.Month;
                    Year = value.Year;
                }
            }
        }

    }

主视图

@model Application.Models.PetModel
@using (Html.BeginForm("CatchPetContent","Quote",Model))
{
    @Html.Partial("PetDetailsContent",Model)
    <input type="submit" value="submit" />
}

PetDetailsContent部分视图

@model Application.Models.PetModel
@Html.TextBoxFor(x => x.Name)
@Html.DropDownListFor(x => x.SpeciesID,(IEnumerable<SelectListItem>)ViewData["TypeList"],"--Please Select--")
 @Html.DropDownListFor(x => x.BreedID,(IEnumerable<SelectListItem>)ViewData["BreedList"],"--Please Select--")
@Html.RenderPartial("UserControl/Calendar",Model.DOB)

日历部分视图

@model Application.Models.Calendar
 @Html.TextBoxFor(x => x.Day)
 @Html.TextBoxFor(x => x.Month)
 @Html.TextBoxFor(x => x.Year)

解决方法

我有同样的问题.在我的情况下,只要子模型为null,框架就会将主模型传递给局部视图.

作为一种解决方法,我在将子模型传递给局部视图之前检查子模型是否为空.如果它为null,那么我要么根本不显示局部视图,要么创建子模型的实例. (再次,它是一个解决方法,直到我找到适合这个问题的解决方案.如果有的话.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读