我想从我的数据库中提供TextAreaFor默认值(他们可以编辑的某个注释)。我使用@Value,我可以在html代码(inspect元素)中看到它,但在textarea本身它是不可见的。
我的代码:
@Html.TextAreaFor(a => a.description, new { Value = ViewBag.Description }
ViewBag.Description = adver.description;
答案 0 :(得分:0)
textarea
与HTML中的其他输入字段的工作方式不同,因此value
属性实际上并没有做您期望的任何事情。
<textarea value="you won't see this">you will see this</textarea>
与文字字段对比:
<input type="text" value="you will see this" />
因此,您需要在创建textarea之前将要在textarea中显示的文本分配给变量。
修改强>
以下是一个更完整的例子:
public ActionResult MyAction()
{
var myDefaultDescription = ""; //Replace with whatever you initialize ViewBag.Description with
return View(new AdverModel{ description = myDefaultDescription });
}
这将导致模型在控制器中初始化。 @Html.TextAreaFor()
仅使用传递到视图中的模型对象中的字段和值。 Model变量在视图中是只读的,因此您必须在控制器中对其进行初始化,并在从控制器返回时将其传递给视图。
这将导致该字段使用默认值自动填充。