Asp.net mvc 4 MVC4,模型和模型渲染不同

Asp.net mvc 4 MVC4,模型和模型渲染不同,asp.net-mvc-4,model,Asp.net Mvc 4,Model,我不知道为什么我会有这种行为,如果有人能给我指出正确的来源,我会很高兴,因为我不知道需要谷歌做什么 视图模型 public class GeneralDay { public byte tintWeekDay { get; set; } public string nvarDayName { get; set; } public bool Assigned { get; set; } } 控制器 [ChildActionOnly] public Part

我不知道为什么我会有这种行为,如果有人能给我指出正确的来源,我会很高兴,因为我不知道需要谷歌做什么

视图模型

public class GeneralDay
{
    public byte tintWeekDay { get; set; }
    public string nvarDayName { get; set; }
    public bool Assigned { get; set; }
}
控制器

    [ChildActionOnly]
    public PartialViewResult TargetDay(MODELS.ViewModels.Promotion promotion) {

        var daylist = gd.GeneralDayList();
        foreach (var day in daylist)
        { 
            promotion.targetDay.Add(new MODELS.ViewModels.GeneralDay
            {
                Assigned = promotion.targetDay.FirstOrDefault(x => x.tintWeekDay == day.tintWeekDay) != null,
                nvarDayName = day.nvarDayName,
                tintWeekDay = day.tintWeekDay
            });
        }

        ModelState.Clear();
        return PartialView(promotion);
    }
看法

@model GeneralDay
@使用XXX.ViewModels;
//第一部分
@(型号:平日)
@(型号:nvarDayName)
@(已分配型号)
//第二部分
@LabelFor(model=>model.tintWeekDay)
@LabelFor(model=>model.nvarDayName)
@LabelFor(model=>model.Assigned)
上面显示这些结果,为什么不同的结果

第一部分

1星期日假

第二部分

平日

nvarDayName

指派


那么下面的打印值

//First Part 
@(Model.tintWeekDay)
@(Model.nvarDayName)
@(Model.Assigned)
下面是创建标签

//Second Part
@Html.LabelFor(model => model.tintWeekDay)    
@Html.LabelFor(model => model.nvarDayName)    
@Html.LabelFor(model => model.Assigned) 
因为您没有使用,所以
LabelFor
只是打印变量名

也许你想用:

//Second Part
@Html.DisplayFor(model => model.tintWeekDay)    
@Html.DisplayFor(model => model.nvarDayName)    
@Html.DisplayFor(model => model.Assigned) 

因为在第一部分中,您将渲染模型属性的值

@(Model.tintWeekDay)将1渲染到输出

但是@Html.LabelFor(model=>model.tintWeekDay)呈现此字段的(不存在)标签,而不是值)

使用DisplayAttribute更改模型中的字段标签

例如:

public class GeneralDay
{
    [Display(Description = "Day of week")]
    public byte tintWeekDay { get; set; }
    public string nvarDayName { get; set; }
    public bool Assigned { get; set; }
}

对不起,我是mvc的新手。有点困惑。如果我想在第二种方法的基础上显示值,我该如何实现这一点?我喜欢显示一个复选框列表供用户检查。好的,找到了显示的方法,我应该这样做,还有比这个更好的方法吗@Html.HiddenFor(model=>model.tintWeekDay)@(model.nvarDayName)@Html.CheckBoxFor(model=>model.Assigned)@HtmlHiddenFor在呈现的Html中创建一个元素。你的问题不是很清楚你执行了什么。
public class GeneralDay
{
    [Display(Description = "Day of week")]
    public byte tintWeekDay { get; set; }
    public string nvarDayName { get; set; }
    public bool Assigned { get; set; }
}