加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在MVC3中为多行文本框创建多个编辑器模板?

发布时间:2020-12-15 19:43:57 所属栏目:asp.Net 来源:网络整理
导读:我的意见中有以下两种类型的多行文本区 textarea cols="100" rows="15" class="full-width" id="dialogText" name="Text"@Model.Text/textareatextarea cols="100" rows="10" class="full-width" id="dialogText" name="Text"@Model.Text/textarea 我想利用
我的意见中有以下两种类型的多行文本区
<textarea cols="100" rows="15" class="full-width" id="dialogText" 
          name="Text">@Model.Text</textarea>

<textarea cols="100" rows="10" class="full-width" id="dialogText" 
          name="Text">@Model.Text</textarea>

我想利用自定义编辑器模板,但是保持以不同方式指定属性的能力(例如,上述两行之间的行不同).

我可以为同一个字段声明和使用两种不同类型的模板吗?如果是这样,那么我应该如何声明模板,如何指定不同的模板来使用?

另外我如何声明不同的列和行.我可以使用列,行,还是应该在CSS中指定height和width,如width = 500px,height = 600px或400px?

解决方法

您可以覆盖 default editor template(?/ Views / Shared / EditorTemplates / MultilineText.cshtml):
@Html.TextArea(
    "",ViewData.TemplateInfo.FormattedModelValue.ToString(),ViewData
)

然后假定您已经定义了一个视图模型:

public class MyViewModel
{
    [DataType(DataType.MultilineText)]
    public string Text { get; set; }
}

在主视图内可以做到这一点:

@model MyViewModel

@Html.EditorFor(x => x.Text,new { cols = "100",rows = "15",id = "dialogText",@class = "full-width" })
@Html.EditorFor(x => x.Text,rows = "10",@class = "full-width" })

这将使预期产出:

<textarea class="full-width" cols="100" id="dialogText" name="Text" rows="15">
    hello world
</textarea>

<textarea class="full-width" cols="100" id="dialogText" name="Text" rows="10">
    hello world
</textarea>

此外,您可以增强编辑器模板,以便您不需要在每个EditorFor调用中指定@class属性,如下所示:

@{
    var htmlAttributes = ViewData;
    htmlAttributes["class"] = "full-width";

}
@Html.TextArea(
    "",htmlAttributes
)

现在你可以:

@model MyViewModel
@Html.EditorFor(x => x.Text,id = "dialogText" })
@Html.EditorFor(x => x.Text,id = "dialogText" })

哦,不要忘记,ids在HTML中必须是唯一的,所以这个id =“dialogText”对于第二个textarea显然应该是不同的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读