所以我有一個double
字段叫做Area
。我打印這樣說:ASP.Net MVC EditorTemplate錯誤Id
<div>@Html.EditorFor(model => model.Area)</div>
我爲雙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
都返回「Area」當我看着他們在debbuging。
UPDATE:
我htmlAttributes
(如@DarinDimitrov問)返回此數組:
["data-min": "0.0", "data-format": "0,2"]
很難說不知道'EditorTemplateHelper.GetAllAttributes'方法返回了什麼。 –