首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@html.validationmessagefor不显示错误消息

@html.validationmessagefor不显示错误消息
EN

Stack Overflow用户
提问于 2016-11-03 07:49:08
回答 1查看 449关注 0票数 0

我的mvc项目中有以下视图模型。

代码语言:javascript
复制
public class AddGISViewModel
{
    public myproject.Models.DomainModels.GIS gis { get; set; }
    public IEnumerable<myproject.Models.DomainModels.Companies> Companies { get; set; }
    public long CompanyID { get; set; }
}

我创建了一个视图

代码语言:javascript
复制
@model myproject.ViewModels.GIS.AddGISViewModel
@using (Ajax.BeginForm("Create", "GIS", new AjaxOptions { HttpMethod = "Post", Url = "/GIS/Create" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.Label("company", new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownListFor(model => model.CompanyID, new SelectList(Model.Companies, "CompanyID", "Name"), "select company please ", htmlAttributes: new  {@class = "form-control" })
            @Html.ValidationMessageFor(model => model.CompanyID)
        </div>
    </div>

此外,我还创建了以下元数据

代码语言:javascript
复制
    [Required(ErrorMessage = "you should select company")]
    [DisplayName("company")]
    [Display(Name = "company")]
    public long CompanyID { get; set; }

当我运行我的项目@validationmessagefor显示“CompanyID是必需的字段”时,您应该选择我在元数据中定义的公司。我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-03 08:57:28

您已经创建了一个视图模型,因此将这些属性应用于视图模型中的属性。由于视图模型的目的是表示要在视图中显示/编辑的内容,因此没有必要为元数据创建单独的类。

您的视图模型应该是

代码语言:javascript
复制
public class AddGISViewModel
{
    [Required(ErrorMessage = "you should select company")]
    [DisplayName("company")]
    public long? CompanyID { get; set; }
    public IEnumerable<SelectListItem> Companies { get; set; }
    ....
}

请注意,CompanyID属性应该是空的,以防止下发攻击,用于显示下拉列表中的公司的集合属性应该是IEnumerable,因此视图是

代码语言:javascript
复制
@Html.DropDownListFor(model => model.CompanyID, Model.Companies, "select company please ", new { @class = "form-control" })

此外,如果编辑模型的任何属性,则视图模型不应包含数据模型。如果是这样,则将GIS gis替换为视图中需要的GIS的每个属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40396276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档