您的位置 首页 asp.Net

asp.net-mvc – ASP.Net [HiddenInput]数据属性在Razor中用Html.EditorFo

我有以下型号:

public class Product
{
    [HiddenInput(DisplayValue = false)]
    public int ProductID { get; set; }

    [Required(ErrorMessage="Please enter a product name")]
    public string Name { get; set; }

    [Required(ErrorMessage="Please enter a description")]
    [DataType(DataType.MultilineText)]
    public string Description { get; set; }

    [Required]
    [Range(0.01,double.MaxValue,ErrorMessage="Please enter a positive price")]
    public decimal Price { get; set; }

    [Required(ErrorMessage="Please specify a category")]
    public string Category { get; set; }

    public byte[] ImageData { get; set; }

    [HiddenInput(DisplayValue = false)]
    public string ImageMimeType { get; set; }
}

我引用了System.Web.Mvc和System.ComponentModel.DataAnnotations.

我在这里提出如下:

<h1>Edit @Model.Name</h1>

@using (Html.BeginForm("Edit","Admin",FormMethod.Post,new { enctype = "multipart/form-data" })) {
@Html.EditorForModel()

<div class="editor-lable">Image</div>
<div class="editor-=field">
    @if (Model.ImageData == null)
    {
        @:None
        }
    else
    {
        <img width="150" height="150" src="@Url.Action("GetImage","Product",new { Model.ProductID })" />
    }
    <div>Upload new image: <input type="file" name="Image" . /></div>
</div>
<input type="submit" value="Save" />
@Html.ActionLink("Cancel and return to List","Index")

}

问题是当[必需]注释正常工作时,[HiddenInput]字段实际上并不隐藏. html源代码甚至没有显示隐藏属性.

为什么Html.EditorForModel没有将[HiddenInput]属性应用于这些属性?有任何想法吗?

解决方法

在我的情况下,我必须将[HiddenInput]写成[HiddenInput(DisplayValue = false)]

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章