TextAreaFor不显示默认值(MVC4)

时间:2013-12-27 01:13:52

标签: c# asp.net-mvc-4

我想从我的数据库中提供TextAreaFor默认值(他们可以编辑的某个注释)。我使用@Value,我可以在html代码(inspect元素)中看到它,但在textarea本身它是不可见的。

我的代码:

@Html.TextAreaFor(a => a.description, new { Value = ViewBag.Description }

ViewBag.Description = adver.description;

1 个答案:

答案 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变量在视图中是只读的,因此您必须在控制器中对其进行初始化,并在从控制器返回时将其传递给视图。

这将导致该字段使用默认值自动填充。