好的,这是我的情况,这已经到了......戏剧性的停顿......
我有以下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.
答案 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。