如何设置MVC textAreaFor<>的默认值盒子?

时间:2012-05-07 10:03:43

标签: asp.net-mvc-2 textarea default-value

好的,这是我的情况,这已经到了......戏剧性的停顿......

我有以下TextAreaFor<>我的MVC视图中的框:

        <div class="editor-label">
            <%: Html.LabelFor(model => model.Monday) %>
        </div>
        <div class="editor-field">
            <%: Html.TextAreaFor(model => model.Wednesday, 6, 40, new { })%>
            <%: Html.ValidationMessageFor(model => model.Monday) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.Wednesday) %>
        </div>
        <div class="editor-field">
            <%: Html.TextAreaFor(model => model.Wednesday, 6, 40, new {})%>
            <%: Html.ValidationMessageFor(model => model.Wednesday) %>
        </div>

        <div class="editor-label">
            <%: Html.LabelFor(model => model.Friday) %>
        </div>
        <div class="editor-field">
            <%: Html.TextAreaFor(model => model.Friday, 6, 40, new {}) %>
            <%: Html.ValidationMessageFor(model => model.Friday) %>
        </div>

对于那些有很多经验的人,您可能已经注意到我使用强类型视图来减少开发时间,因此很多默认项目都在这里。

我需要知道,如何设置TextAreaFor&lt;&gt;的默认值?盒子? I.E,我可能希望其中的文字作为模板。无论用户添加到这些textAreas都将存储在数据库中(后端已经完成并且功能正常)。正如帖子ASP.NET MVC - How can I set the Default Value in a Strongly Typed TextArea?中所见,我不确定我是否可以使用此方法,因为我不确定模型变量是否会被发送回我的控制器。

另一个快速问题(QuestionCeption)如果我将这些textAreas中的数据保存到数据库(使用SQL Server Express 2008),它是否会保留新的行字符?

以下是我需要的默认值示例。

Traditional:
Healthy Lifestyle:
Chill out:
Vegetarian:
Soup:
Sandwich:
No thanks.

1 个答案:

答案 0 :(得分:3)

您可以在呈现此视图的控制器操作中执行此操作:

public ActionResult Index()
{
    MyViewModel model = ...
    model.Friday = "some default value";
    return View(model);
}

您将获得相应的POST操作,该操作将检索值:

[HttpPost]
public ActionResult Index(MyViewModel model)
{
    // model.Friday will contain the text entered by the user in the corresponding textarea
    // here you could store for example the values in the database
    ...
}
  

另一个快速问题(QuestionCeption)如果我保存这些数据   textAreas到数据库(使用SQL Server Express 2008),它会   保存新行字符?

是的,您只需要将数据保存在数据库中,而不进行任何转换。当您稍后在textarea中显示文本时,这将起作用,但如果您想在<div>中显示它,则必须对其进行HTML编码并用<br/>替换新行。例如,您可以为此作业编写custom HTML helper