Html.DescriptionFor在前一个<textarea>

时间:2016-06-14 08:39:46

标签: html asp.net-mvc knockout.js

&lt; p&gt;我有&lt; code&gt;&lt; textarea /&gt;&lt; / code&gt;在我的视图模型中具有属性的值。该物业如下:&lt; / p&gt; &lt; pre&gt;&lt; code&gt; [显示(名称=&#34;说明&#34;,说明=&#34;说明文档&#34;,资源类型= typeof(Resources.Admin))] public string说明{get;组; } &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;请注意&lt; code&gt;显示&lt; / code&gt;数据属性。这定义了属性的显示名称和描述。有了这个,我应该可以设置我的标记:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; div class =&#34; form-horizo​​ntal&#34;&gt;     &lt; div class =&#34; form-group&#34;&gt;         @ Html.LabelFor(x =&gt; x.Description,new {@class =&#34; control-label col-md-2&#34;})         &lt; div class =&#34; col-md-10&#34;&gt;             &lt; textarea data-bind =&#34; value:Description&#34; /&GT;             @ Html.ValidationMessageFor(x =&gt; x.Description)             @ Html.DescriptionFor(x =&gt; x.Description)         &LT; / DIV&GT;     &LT; / DIV&GT; &LT; / DIV&GT; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;&lt; code&gt;&lt; textarea data-bind =&#34;值:说明&#34; /&gt;&lt; / code&gt;使用KnockoutJS来绑定值。&lt; / p&gt; &lt; p&gt;在我看来,这应该并且会起作用,但由于某种原因,它并没有。 &lt; code&gt; @ Html.DescriptionFor(x =&gt; x.Description)&lt; / code&gt;的HTML正在&lt; code&gt; textarea&lt; / code&gt;的值内呈现,我发现它非常奇特。我不知道发生了什么,以及它为什么会这样。&lt; / p&gt; &lt; p&gt;这是网页的图片:&lt; / p&gt; &lt; p&gt;&lt; a href =&#34; https://i.stack.imgur.com/lbzur.png" rel =&#34; nofollow noreferrer&#34;&gt;&lt; img src =&#34; https://i.stack.imgur.com/lbzur.png" alt =&#34;在此处输入图像说明&#34;&gt;&lt; / a&gt;&lt; / p&gt; &LT p为H.;&LT;强&gt;编辑&LT; /强&GT;&LT; / p为H. &LT p为H.;&LT; EM&GT; Html.DescriptionFor()&LT; / EM&GT;&LT; / p为H. &lt; pre&gt;&lt; code&gt;公共静态类MvcHtmlHelpers {     public static MvcHtmlString DescriptionFor&lt; TModel,TValue&gt;(此HtmlHelper&lt; TModel&gt; self,Expression&lt; Func&lt; TModel,TValue&gt;&gt;表达式)     {         var metadata = ModelMetadata.FromLambdaExpression(expression,self.ViewData);         var description = metadata.Description;         返回MvcHtmlString.Create(string.Format(@&#34;&lt; p class =&#39; help-block&#39;&gt; {0}&lt; / p&gt;&#34;,self.Encode(description) ));     }     public static string DescriptionForRaw&lt; TModel,TValue&gt;(此HtmlHelper&lt; TModel&gt; self,Expression&lt; Func&lt; TModel,TValue&gt;&gt;表达式)     {         var metadata = ModelMetadata.FromLambdaExpression(expression,self.ViewData);         var description = metadata.Description;         回报说明;     } } &LT; /代码&GT;&LT; /预&GT;

1 个答案:

答案 0 :(得分:2)

问题是<textarea>不是自我结束标记,因此之后出现的HTML被视为元素的一部分。

您需要使用以下方法关闭它:

<textarea data-bind="value: Description"></textarea>