1
我有一個<textarea />
具有我的視圖模型中的屬性值。物業如下:Html.DescriptionFor以前的渲染<textarea/>
[Display(Name="Description", Description="DescriptionOfDescription", ResourceType=typeof(Resources.Admin))]
public string Description { get; set; }
請注意Display
數據屬性。這定義了屬性的顯示名稱和描述。有了這個,我應該能夠建立我的標記,像這樣:
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(x => x.Description, new { @class="control-label col-md-2" })
<div class="col-md-10">
<textarea data-bind="value: Description" />
@Html.ValidationMessageFor(x => x.Description)
@Html.DescriptionFor(x => x.Description)
</div>
</div>
</div>
的<textarea data-bind="value: Description"/>
使用KnockoutJS到值綁定。
在我看來,這應該會工作,但由於某種原因,它不會。 @Html.DescriptionFor(x => x.Description)
的HTML被呈現在textarea
的值的範圍內,我發現它非常奇特。我不知道發生了什麼,爲什麼它的行爲如此。
EDIT
Html.DescriptionFor()
public static class MvcHtmlHelpers
{
public static MvcHtmlString DescriptionFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
var description = metadata.Description;
return MvcHtmlString.Create(string.Format(@"<p class='help-block'>{0}</p>", self.Encode(description)));
}
public static string DescriptionForRaw<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
var description = metadata.Description;
return description;
}
}
什麼是'@ Html.DescriptionFor()'?這不是MVC的一部分。 –
更新的問題 – Detilium
'