相关疑难解决方法(0)

如何在ASP.MVC中指定多行编辑器的列和行?

在ASP.MVC 3中,如何指定多行EditorFor(textarea)的列和行?我正在使用[UIHint("MultilineText")],但找不到有关如何为文本区域添加属性的任何文档.

期望的HTML:

 <textarea cols="40" rows="10"></textarea>
Run Code Online (Sandbox Code Playgroud)

我的MVC 3模型的相关部分:

[UIHint("MultilineText")]
public string Description { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的Razor cshtml的相关部分:

<div class="editor-field">
    @Html.EditorFor(model => model.Description)
</div>
Run Code Online (Sandbox Code Playgroud)

我在视图中获得的内容:

 <div class="editor-field">
     <textarea class="text-box multi-line" id="Description" name="Description"></textarea>
 </div>
Run Code Online (Sandbox Code Playgroud)

如何设置行和列?

asp.net-mvc data-annotations razor

67
推荐指数
4
解决办法
9万
查看次数

ASP.NET MVC Textarea HTML帮助程序在使用AntiXssLibrary时添加行

我注意到ASP.NET MVC的TextAreaFor HTML帮助程序中最烦人(可能)的错误.出于某种原因,HTML帮助程序会在textarea中的任何内容之前添加NewLine.显然,这是为了解决个人内容的可能问题,从有意的新线开始,浏览器按照规范忽略它.

然而,通过添加它,我得到了更多烦人的错误,现在我的所有textareas在表单加载任何内容之前自动有一个额外的行(即在我的字段中的任何内容之前显示:).在吐出之前,似乎某些东西正在编码"换行符".

任何人有一个解决方法吗?我希望打算输出它的预期行为

    <textarea>
    Stuff</textarea>
Run Code Online (Sandbox Code Playgroud)

不是

    <textarea>&#13;&#10;Stuff</textarea>
Run Code Online (Sandbox Code Playgroud)

我越来越...

编辑 进一步检查,这似乎是由于我使用AntiXssLibrary进行编码而不是默认的HtmlEncoder.我使用的是4.0版,我的编码器类方法如下所示:

    protected override void HtmlEncode(string value, TextWriter output)
    {
        output.Write(Microsoft.Security.Application.Encoder.HtmlEncode(value));
    }
Run Code Online (Sandbox Code Playgroud)

所以我的想法是,因为从TextAreaHelper调用的TagBuilder类,HTML编码标签的内容,它是默认HTML编码器的行为,但AntiXssLibrary更彻底,因此你看到这种行为?

asp.net-mvc html-helper

5
推荐指数
1
解决办法
2048
查看次数