【问题标题】:MVC 4, Model and model render differentlyMVC 4,模型和模型渲染不同
【发布时间】:2013-07-22 14:11:55
【问题描述】:

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

查看模型

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
@using XXX.ViewModels;

<fieldset>

 
 //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) 

</fieldset>

上面显示了这些结果,为什么结果不一样?

第一部分

1 个星期日错误

第二部分

tintWeekDay

nvarDayName

已分配

【问题讨论】:

    标签: asp.net-mvc-4 model


    【解决方案1】:

    下面的打印值..

    //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) 
    

    由于您没有使用DisplayAttributeLabelFor 只是打印变量名。

    也许你想使用:

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

    【讨论】:

      【解决方案2】:

      因为在第一部分你渲染了模型属性的值。

      @(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 中创建一个 元素。您的问题并不清楚您的期望。
      猜你喜欢
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      相关资源
      最近更新 更多