无法为@ Html.TextAreaFor设置默认文本?

时间:2011-11-15 04:34:46

标签: html asp.net-mvc-3

我无法为@HTML.TextAreaFor

设置默认文字

这是我尝试过的所有内容,但没有用,它总是显示空白区域

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @Text = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @text = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @Value = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @value = ViewBag.Model.EmployeeDescription })

@Html.TextBoxFor @ValueTextArea完全相同但不适用于{{1}} :(

任何人都可以帮忙......

3 个答案:

答案 0 :(得分:3)

在将模型传递给视图之前,您应该在模型上设置文本。对于TextBoxFor也是如此。您不必使用HTML属性设置值。请注意,textarea没有text或value属性,它在初始渲染时的值是开始和结束标记之间的HTML。

答案 1 :(得分:1)

找到答案,我犯了一个愚蠢的错误

现在我从这个

替换了我的Index方法
    public ActionResult Index(Guid empId)
    {
        ViewBag.Model = new EditEmployeePopulator(session, empId).GetModel();
        return View();
    }

到此

    public ActionResult Index(Guid empId)
    {
        return View(new EditEmpoyeePopulator(session, empId).GetModel());
    }

它有效!

我之前以错误的方式做到了这一点。我将我的模型指定为ViewBag的属性,并且仅在我的视图中通过ViewBag访问它,这是我的错误。

当我更换我的代码时,它开始只使用

@Html.TextAreaFor(m => m.EmployeeDescription)

:):)

感谢所有回复

答案 2 :(得分:0)

很抱歉这本身就是HTML本身的TextArea元素,因为如果您看到视图源,您将找到值或文本,但对于HTML,这对TextArea没有影响,因此要添加您需要的默认值将文本放入TextArea标记本身

因此您可以使用默认值初始化创建中的对象,如下所示:

Employee e = new Employee { Id = 1, EmployeeDescription = "Default Value" };