というdouble
フィールドがありますArea
。私はこのように印刷します:
<div>@Html.EditorFor(model => model.Area)</div>
Double の私の EditorTemplate は次のようになります。
@{
var attributes = this.ViewData.ModelMetadata.ContainerType.GetProperty(this.ViewData.ModelMetadata.PropertyName).GetCustomAttributes(true);
var htmlAttributes = GAtec.AgroWeb.Basic.Ux.Web.Helpers.EditorTemplateHelper.GetAllAttributes(ViewData, attributes);
var decimalPlaces = htmlAttributes["data-format"].ToString().Split(',');
var value = decimalPlaces.Length > 1 ? Model.ToString("n" + decimalPlaces[1]) : Model.ToString();
@System.Web.Mvc.Html.InputExtensions.TextBox(this.Html, Html.NameFor(model => model).ToString(), value, htmlAttributes);
}
<script>
$(document).ready(function () {
$("#@Html.IdFor(model => model)").restrictNumber();
});
</script>
いいのですが、なぜhtml要素が間違って<input id="Area_Area" />
jQueryセレクターが正しくなるの$("#Area")
ですか?
デバッグでそれらを見ると、両方とも「エリア」NameFor
をIdFor
返します。
アップデート:
私のhtmlAttributes
(@ DarinDimitrovが尋ねたように)この配列を返します:
["data-min": "0.0", "data-format": "0,2"]