首页 > 解决方案 > 如何在控制器的asp.net mvc视图中将文本分配到textarea(任何多行文本)?

问题描述

我需要从 C# 中的控制器将数据设置到 asp.net mvc 剃须刀页面 (.cshtml) 中的文本区域中。我的代码片段如下:我无法将数据分配到模型中。

在 cshtml 中:

@Html.TextBoxFor(b => b.query, new { Value = ViewBag.query, height = "500px;" })

在控制器中:

ViewBag.query = "Hello";
model.query = ViewBag.query;

在模型中:

[Display(Name = "Query")]
public string query { get; set; }

标签: asp.net-mvc

解决方案


当字段的值已在控制器中分配时,我看不出有什么理由应该使用 Value 参数。我不确定为什么这不起作用,因为您没有提供整个代码,所以我将尝试填写空白。

模型:

public class ModelName
{
   [Display(Name = "Query")]
   public string query { get; set; }
}

在控制器中,确保返回模型。

public class ControllerName : Controller
{

   public ActionResult ActionName()
   {

      ViewBag.query = "Hello";
      var model = new ModelName
      {
        query = ViewBag.query
      }
      return View(model)
   }   
}

在视图中,确保页面上引用了对象类型...

@model ApplicationName.Models.ModelName

因此,如果在视图中的任何位置,您都可以通过这种方式获取文本区域的值。

@Html.TextAreaFor(model => model.query, new { @class = "form-control", placeholder = "Add Placeholder", id = "textarea", autocomplete = "off", @rows = "10", style = "width: 70%; max-width: 100%;" }

您可以随时更改样式或根本不使用任何样式,具体取决于您想要什么。


推荐阅读