0

我想使用 EditorForModel() 来生成我的视图,但我想对数据类型进行一些控制,但仅限于某些给定的字段。我试图做的是为我不想编辑的 ID 字段设置一个自定义类型。到目前为止,我无法让我的模板对我的自定义数据类型生效。

所以我的模型

public static customer Createcustomer(global::System.Int32 id, global::System.String code, global::System.Boolean data, global::System.Int32 vehtotal)
    {
        customer customer = new customer();
        customer.id = id;
        customer.code = code;
        customer.data = data;
        customer.vehtotal = vehtotal;
        return customer;
    }

    #endregion

    #region Primitive Properties

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
    [DataMemberAttribute()]
    [DataType("myCustomID")]
    public global::System.Int32 id
    {
        get
        {
            return _id;
        }
        set
        {
            OnidChanging(value);
            ReportPropertyChanging("id");
            _id = StructuralObject.SetValidValue(value);
            ReportPropertyChanged("id");
            OnidChanged();
        }
    }

我的观点

@model Models.customer

@{
   ViewBag.Title = "Edit";
}


<h2>Edit</h2>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
    <legend>customer</legend>

    @Html.EditorForModel()

 <p>
        <input type="submit" value="Save" />
    </p>
</fieldset>

}

我对 customid 字段的看法

    @model .Models.customer


@{
ViewBag.Title = "myCustomID";
}

<h2>myCustomID</h2>

<p>
@Html.EditorFor(model => model.id)

</p>
4

1 回答 1

0

我试图做的是为我不想编辑的 ID 字段设置一个自定义类型

你可以用[HiddenInput]属性装饰它:

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
[HiddenInput(DisplayValue = false)]
public global::System.Int32 id

请注意,这仍将包括该字段,但作为隐藏字段。用户仍然可以伪造请求并更改其值。不要将其用于任何安全断言。

于 2013-07-17T15:55:43.143 回答